我有包含XML类型字段的MS SQL表。此字段的数据格式如下:
<doc> <quote> <code>AA</code> </quote> <quote> <code>BB</code> </quote> <quote> <code>CC</code> </quote> </doc>
报价可以以不同的顺序进行。我需要查看以下格式的数据,该格式显示每个文档的引号第一,第二和第三。
Code 1 Code 2 Code 3 -------------------------------- AA BB CC BB AA CC
试试这个:
DECLARE @test TABLE(ID INT, XmlCol XML) INSERT INTO @test VALUES(1, '<doc> <quote> <code>AA</code> </quote> <quote> <code>BB</code> </quote> <quote> <code>CC</code> </quote> </doc>') INSERT INTO @test VALUES(2, '<doc> <quote> <code>BB</code> </quote> <quote> <code>AA</code> </quote> <quote> <code>CC</code> </quote> </doc>') SELECT ID, X.Doc.value('(quote/code)[1]', 'varchar(20)') AS 'Code1', X.Doc.value('(quote/code)[2]', 'varchar(20)') AS 'Code2', X.Doc.value('(quote/code)[3]', 'varchar(20)') AS 'Code3' FROM @test CROSS APPLY xmlcol.nodes('doc') AS X(Doc)
为您提供以下输出:
ID Code1 Code2 Code3 1 AA BB CC 2 BB AA CC