数据库: 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 )