SQLServer 以逗号分割的字符串转换成多条数据
开发过程中,经常会用到用逗号分隔的字段,这时候如果用where xx in 的时候,如果把字段取出再拼接字符串的话,未免太麻烦,
网上有几种方法,值得考虑。
方法一:Sql Server XML方法:
SELECT --列名 --ROW_NUMBER() over(order by (select 1)) as id, c.value('.', 'varchar(50)') AS list FROM 表名 a CROSS APPLY ( SELECT CAST('<row>' + REPLACE(列名, ',', '</row><row>') + '</row>' AS XML) AS xmlcode ) C1 CROSS APPLY xmlcode.nodes('*') t ( c );
还有用存储过程的,还未研读明白,改日再更。