如何使用SQL从非xml类型列检索xml类型数据 我里面有一张桌子和一根柱子 xml是ntext
类型的列xml列数据示例如下所示
<message to="4075@abc.myftp.org" type="chat" from="5082@abc.myftp.org/e76bea0f">
<body>james bond</body>
<active xmlns="http://jabber.org/protocol/chatstates" />
</message>
我想获取“to”,“from”属性值以及标记值
请建议
答案 0 :(得分:0)
您错过了xml中的结束标记</message>
,但如果添加它,则可以使用value()
函数:
declare @temp table (data ntext)
insert into @temp (data)
select '<message to="4075@abc.myftp.org" type="chat" from="5082@abc.myftp.org/e76bea0f">
<body>james bond</body>
<active xmlns="http://jabber.org/protocol/chatstates" />
</message>'
select
c.data.value('message[1]/@to', 'nvarchar(max)')
from @temp as t
outer apply (select cast(data as xml)) as c(data)