Перейти к основному контенту
Центр разработки для Windows

 none
DECLARE 設定 IN 所需字串,如何自動轉為含' RRS feed

  • Вопрос

  • 您好:

    請問

    DECLARE @x varchar(max);
    set @x='29910,14850,RG41 1QW';

    select * from Person.Address where PostalCode  in (@x)

    這樣 一定沒撈到資料

    該如何 自動讓@x 變為 '29910','14850','RG41 1QW' 讓他可用

    若遇到  Set @StrSQL= N'
                     Select * .. in ' + @x +'''

    這又該如何處理!

    謝 謝!



    28 ноября 2019 г. 13:21

Ответы

  • 那篇回文上面就寫了 :

    Starting with  SQL2017 you can use STRING_SPLIT and do this

    不過我看了 STRING_SPLIT (Transact-SQL)

    文件中寫的是相容性層級 130 ,理論上應該是 SQL 2016 SP1,不過你得要檢查一下自己資料庫的相容性層級是否設定正確
    參考
    檢視或變更資料庫的相容性層級


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/


    • Изменено Bill ChungMVP 29 ноября 2019 г. 13:43
    • Помечено в качестве ответа softballnow 8 декабря 2019 г. 7:25
    29 ноября 2019 г. 13:38
  • 換個方式吧 您把變數塞到一個temp table

    create table #temp(PostalCode nvarchar(50))

    insert #temp

    select '29910'

    insert #temp

    select ................

    select * from Person.Address where PostalCode in(select PostalCode from #temp)

    • Помечено в качестве ответа softballnow 8 декабря 2019 г. 7:25
    5 декабря 2019 г. 0:27

Все ответы