Đây là XML mẫu của tôi:Kết nối giá trị xml khi lựa chọn bởi XQuery trong T-SQL
<root>
<element>
<subelement>
<value code="code1">value1</value>
<value code="code2">value2</value>
</subelement>
</element>
</root>
Và đây là truy vấn thử nghiệm của tôi:
DECLARE @tempTable TABLE (
ValueCode nvarchar(MAX),
Value nvarchar(MAX)
)
DECLARE @xml XML
select @xml = cast(c1 as xml) from OPENROWSET (BULK 'C:\test.xml', SINGLE_BLOB) as T1(c1)
INSERT INTO @tempTable
SELECT
Tbl.Col.value('subelement[1]/@code', 'NVARCHAR(MAX)'),
Tbl.Col.value('subelement[1]', 'NVARCHAR(MAX)')
FROM @xml.nodes('//element') Tbl(Col)
SELECT * FROM @tempTable
Các truy vấn, khi được thực thi, đưa ra một hàng với cột ValueCode chứa NULL và cột Giá trị có chứa 'value1value2'. Những gì tôi muốn nhận được sẽ là các thuộc tính và các giá trị nối với một dấu phân tách. Ví dụ, tôi cần ValueCode để chứa 'code1; code2 'và Giá trị để chứa' giá trị 1; giá trị2 '. Làm thế nào tôi có thể đạt được điều đó?