根据某一列某一分隔符分成多行数据

数据库: sqlserver

开发中会有场景,一些使用 ","分隔的数据,希望将其分成多行数据进行查询展示.

方案: 使用  CROSS APPLY 来实现. 如下 .其中 attractStaffId的字段为使用","分隔的字段

select v.id,v.name,
  c.value('.', 'varchar(50)') AS staffId
from s_student v
  left join WF_TASK t on v.id = t.task_id
  CROSS APPLY ( SELECT CAST('<row>' + REPLACE(v.attractStaffId, ',',
                                              '</row><row>')
                            + '</row>' AS XML) AS xmlcode
              ) C1
  CROSS APPLY xmlcode.nodes('*') t1 ( c )

参考: https://www.cnblogs.com/TheBob/p/10298290.html

发布了53 篇原创文章 · 获赞 5 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_40085888/article/details/104476543