Ari*_*ian 8 xml sql t-sql sql-server sql-server-2008
我有这样一张桌子:
YEAR int,
Fields XML
Run Code Online (Sandbox Code Playgroud)
我的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
...
Run Code Online (Sandbox Code Playgroud)
谢谢
mar*_*c_s 11
这个怎么样:
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)
Run Code Online (Sandbox Code Playgroud)
您基本上是Year从基表中进行选择,然后<Person>从Fields列中提取每个节点到一个"内联XML表",调用E一个名为XML的列P(您可以选择您喜欢的任何名称),然后再次查询和提取个体来自的元素.
| 归档时间: |
|
| 查看次数: |
4862 次 |
| 最近记录: |