我有一个带有图像标签的 xml,其中有 12 个 URL 标签。
我已经编写了这个查询来从 xml 中获取结果。
酒店.xml 文件:
<images>
<url></url>
<url></url>
<url></url>
<url></url>
<url></url>
<url></url>
<url></url>
<url></url>
<url></url>
<url></url>
<url></url>
<url></url>
</images>
这是我的代码:
CREATE TABLE #WorkingTable ( Data XML )
INSERT INTO #WorkingTable
SELECT *
FROM OPENROWSET(BULK 'd:\hotels.xml', SINGLE_BLOB) AS data
DECLARE @XML AS XML ,
@hDoc AS INT
SELECT @XML = Data
FROM #WorkingTable
EXEC sp_xml_preparedocument @hDoc OUTPUT, @XML
declare @tmp varchar(MAX)
SET @tmp = ''
SELECT pref.value('(hotel_ref/text())[1]','varchar(400)')AS hotel_ref,
sref.value('(text())[1]', 'varchar(400)')+ ';'
FROM #WorkingTable CROSS APPLY
Data.nodes('//hotels/hotel') AS hotel(pref)
CROSS APPLY
pref.nodes('images/url') AS images(sref)
EXEC sp_xml_removedocument @hDoc
DROP TABLE #WorkingTable
我的问题是它返回 12 rows 。我需要用逗号分隔 URL 值。怎么可能。