[英]How select XML fields node for all rows
我有这样一张桌子:
YEAR int,
Fields XML
我的XML列对所有行都有这种结构,但具有不同的值:
我怎么能得到这个结果:
YEAR ID NAME LASTNAME
---------------------------------------------------
2011 1000 Nima Agha
2011 1001 Begha Begha
2011 1002 Jigha Jigha
2011 1003 Aba Aba
2012 1034 AAA BBB
...
谢谢
这个怎么样:
SELECT
Year,
E.P.value('(ID)[1]', 'INT') AS 'ID',
E.P.value('(Name)[1]', 'VARCHAR(50)') AS 'Name',
E.P.value('(LastName)[1]', 'VARCHAR(50)') AS 'LastName'
FROM
dbo.YourTable
CROSS APPLY
Fields.nodes('/Employees/Person') AS E(P)
您基本上从基表中选择Year
,然后从Fields
列中将每个<Person>
节点提取到名为E
的“内联XML表”中,并使用一个名为P
XML列(您可以选择您喜欢的任何名称)您再次查询并从中提取单个元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.