选择XML语句不返回所需的输出

时间:2017-11-14 06:59:31

标签: sql-server xml tsql

DECLARE @barcode XML

            SET @barcode = '<BCODES><BCODE>a</BCODE><BCODE>b</BCODE><BCODE>c</BCODE><BCODE>d</BCODE></BCODES>'

            --INSERT INTO #barcode
            SELECT      v.x.value('BCODE[1]','VARCHAR(15)') AS Barcodes
            FROM        @barcode.nodes('BCODES') v(x)

结果 - &GT;

条形码

我无法在输出中获得b,c和d。

2 个答案:

答案 0 :(得分:1)

这样做:

SELECT v.x.value('.','VARCHAR(15)') AS Barcodes
FROM @barcode.nodes('BCODES/BCODE') v(x)

首先要获取所有BCODE个节点,然后提取其值。

enter image description here

答案 1 :(得分:0)

你可以尝试:

DECLARE @barcode XML;
SET @barcode = '<BCODES><BCODE>a</BCODE><BCODE>b</BCODE><BCODE>c</BCODE><BCODE>d</BCODE></BCODES>';

            --INSERT INTO #barcode

SELECT barcode = n.v.value('.[1]', 'NVARCHAR(128)')
FROM @barcode.nodes('BCODES/BCODE') AS n(v);

结果:

barcode 
a
b
c
d