SQL server之字符串分割后转表格

在最近的开发中遇见一个问题,就是将一个用逗号分割的字符串分成多条插入到表格中(在存储过程中的逻辑),虽然不知道大家是否还有其他解决方案,但是在这里我就先说一下我的解决方案。

我的方法是先把字符串转化成一列表格,然后将这列表格一条条加到插入语句中,最终执行插入语句,在这里,我就说一下我是如何将字符串转化成一列表格(我是用sql server数据库中的XML属性来解决的)。

select 
    b.text     --4.查出text值
from 
    (select [text]=convert(xml,'<root><v>'+replace('ab,bc,cd,ef',',','</v><v>')+'</v></root>'))a    
               --1.将逗号用xml标签替换,然后转换成xml格式
outer apply    --2.做关联查询
    (select [text]=C.v.value('.','nvarchar(100)') from a.[text].nodes('/root/v')C(v))b
               --3.将xml内容按照标签替换拆分节点并查出每个节点的value值标记为text

最终结果是:

好了,这个就是这么简单,希望能帮到大家!

猜你喜欢

转载自blog.csdn.net/qq_39818210/article/details/81220062