如果数据库是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