數據庫: 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 )