我的表aa,里面的字段:linkman为xml类型的
xml格式
<Root>
<Content>
<Line>
<name>张三</name>
<age>25</age>
</Line>
<Line>
<name>李四</name>
<age>26</age>
</Line>
</Content>
</Root>
现在要用sql语句显示
name age
张三 25
李四 26
请问怎么写?
xml格式
<Root>
<Content>
<Line>
<name>张三</name>
<age>25</age>
</Line>
<Line>
<name>李四</name>
<age>26</age>
</Line>
</Content>
</Root>
现在要用sql语句显示
name age
张三 25
李四 26
请问怎么写?
set @xml='
<Root>
<Content>
<Line>
<name> 张三 </name>
<age> 25 </age>
</Line>
<Line>
<name> 李四 </name>
<age> 26 </age>
</Line>
</Content>
</Root>'select [name]=x.query('name').value('(name)[1]', 'varchar(32)')
, age=x.query('age').value('(age)[1]', 'int')
from @xml.nodes('//Root/Content/Line') t(x)/*
name age
-------------------------------- -----------
张三 25
李四 26(2 row(s) affected)
*/
T.c.value('name[1]' ,'NVARCHAR(50)') AS NAME ,T.c.value('age[1]' ,'NVARCHAR(50)') AS AGE
FROM
aa
CROSS APPLY
[linkman].nodes('//Line) as T(C)
SELECT x.query('name/text()') name,x.query('age/text()') age FROM @xml.nodes('//Line') t(x)