我有这样一张桌子:
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,然后提取每个< Person>从Fields列中的节点到名为E的“内联XML表”,其中有一个名为P的XML列(您可以选择您喜欢的任何名称),您再次查询并从中提取单个元素.
原文地址:https://www.jb51.cc/mssql/77045.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。