sql – 如何为所有行选择XML字段节点

我有这样一张桌子:
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列(您可以选择您喜欢的任何名称),您再次查询并从中提取单个元素.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...