5
我有一個存儲在xml列中的數據,需要逗號分隔的子節點列表。使用下面的腳本,我只能得到「A B C」。請幫助我使用xquery獲得「A,B,C」(使用逗號簡單地替換空格不會幫助,因爲我們的數據中包含空格)。從SQL Server列中獲取XML節點作爲逗號分隔列表
create table Temp12345 (col1 xml)
go
insert into Temp12345 (col1)
values('<fd><field i="22"><v>A</v><v>B</v><v>C</v></field></fd>')
go
select col1.value('(/fd/field[@i=22])[1] ', 'NVarchar(Max)')
from Temp12345
go
drop table Temp12345
go
+1的工作答案。出於好奇,我看到你正在使用CROSS APPLY。我和CTE做了類似的事情。這兩種方法是否有重大優勢? – IamIC 2010-12-07 16:50:38
@IanC:不知道 - 必須看到你的CTE :-)這就是我知道的,我可以將XML節點列表「碎片化」成行的「僞表」,以從中獲取單個零碎片段。 – 2010-12-07 16:52:00