如果數據庫是2016之前的版本會出現錯誤:對象名 'string_split' 無效。
這時需要把數據庫的兼容性級別調整為SQL Server 2016(130),調整完成即可正常使用
1.打開數據庫屬性頁,選項->兼容性級別,調整為130或者以上。
2.代碼修改兼容性級別
ALTER DATABASE [DatabaseName] SET COMPATIBILITY_LEVEL = 130
一、拆分字符串變量
select * from string_split('1,2,3,4,5',',')
string_split函數展示的默認名稱是value,可根據需要修改別名
示例2:select value as 'code' from string_split('1,2,3,4,5',',')
二、拆分表中的列
select rst.value from
‘表名’ as ewcdd
CROSS APPLY STRING_SPLIT(ewcdd.要拆分的列名,',')rst(rst是別名)
where ewcdd.ID='467A1EE6-5AC1-4EAC-B32D-AE700098726A'
三、和in搭配使用
有些應用中,參數的值是不確定的,是用逗號拼接后,傳入sql中,這個時候string_split特別有用,可以和in搭配使用。
SELECT
t.id,
t.name,
t.description
FROM test t
WHERE t.id IN (SELECT CAST(v.value AS INT) AS id FROM STRING_SPLIT('1,2,3', ',') v)
四、拆分+關聯
SELECT
t.id,
t.name,
t.description
FROM test t
INNER JOIN STRING_SPLIT('1,2',',') v
ON t.id = CAST(v.value AS INT)
本文參考:https://www.cnblogs.com/hobelee/p/15615806.html