画像タグを持つxmlがあり、この中に12個のURLタグがあります。
xml から結果を取得するために、このクエリを作成しました。
Hotel.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 行を返すことです。URL 値をカンマ区切りにする必要があります。どのようにそれが可能です。