7

これは私のサンプル XML です。

<root>
    <element>
        <subelement>
            <value code="code1">value1</value>
            <value code="code2">value2</value>
        </subelement>
    </element>
</root>

そして、これは私のテストクエリです:

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

このクエリを実行すると、ValueCode 列に NULL が含まれ、Value 列に「value1value2」が含まれる行が返されます。私が取得したいのは、区切り記号で連結された属性と値です。たとえば、ValueCode に 'code1; を含める必要があります。code2」および「値 1」を含む値。値 2'. どうすればそれを達成できますか?

4

1 に答える 1