Chr*_*eek 3 xml sql sql-server
我有一个类似于以下的XML结构
<root>
<person>
<name>James</name>
<description xsi:type="me:age">12</description>
<description xsi:type="me:height>6 foot</description>
...
Run Code Online (Sandbox Code Playgroud)
我必须从表中拉出来......
姓名,年龄,身高
我正在尝试使用SQL 2005中的FOR XML路径,并使用类似的查询
SELECT
Name as 'name'
Age as 'description xsi:type="me:age"'
Height as 'description xsi:type="me:height"'
FOR XML PATH('person')
Run Code Online (Sandbox Code Playgroud)
但它给我一个关于'description xsi'命名空间丢失的错误.有没有办法使用FOR XML PATH实现这一点.实际查询比这个例子复杂得多,需要花费很多精力才能改变.
谢谢
FOR XML PATH有时候有点困难(至少从我所知道的).这可能会让你到达那里:
WITH XMLNAMESPACES('uri' as xsi)
SELECT
'me:age' AS 'description/@xsi:type'
,age AS 'description'
,name AS 'name'
,'me:height' AS 'description/@xsi:type'
,height AS 'description'
FROM #test
FOR XML PATH('person')
Run Code Online (Sandbox Code Playgroud)
生产:
<person xmlns:xsi="uri">
<description xsi:type="me:age">32</description>
<name>Alice</name>
<description xsi:type="me:height">6 Foot</description>
</person>
<person xmlns:xsi="uri">
<description xsi:type="me:age">24</description>
<name>Bob</name>
<description xsi:type="me:height">5 Feet 5 Inches</description>
</person>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9537 次 |
| 最近记录: |