sql 2005读取xml

hanbing_zjp 2009-06-17 01:24:58
表a中有一个xml字段数据为:<A><AA Id="13" /><AA Id="18" /><AA Id="19" /></A>
想输出一个新字段为13,18,19(用逗号隔开)
...全文
48 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
JonasFeng 2009-06-17
  • 打赏
  • 举报
回复
DECLARE @X XML 
SELECT @X='<A>
<AA Id="13"/>
<AA Id="18"/>
<AA Id="19"/>
</A>'


-- SELECT @X.value('data(/A/AA/ID)[1]','varchar(20)')

SELECT nref.value('@Id', 'varchar(20)') AS TEST
FROM (SELECT @X AS LI) X
CROSS APPLY LI.nodes('/A/AA') AS R(nref)

/* 结果
TEST
--------------------
13
18
19

(3 行受影响)
*/

SQL2005有专门支持XML的方法。
--小F-- 2009-06-17
  • 打赏
  • 举报
回复
学习
ai_li7758521 2009-06-17
  • 打赏
  • 举报
回复
id          v
----------- ----------------------
1 13,18,19
2 13,18,24,1,100,19

(2 行受影响)
ai_li7758521 2009-06-17
  • 打赏
  • 举报
回复
declare @a table(id int identity(1,1),XmlDoc xml)
insert @a
select '<A> <AA Id="13" /> <AA Id="18" /> <AA Id="19" /> </A>' union all
select '<A> <AA Id="13" /> <AA Id="18" /> <AA Id="24" /><AA Id="1" /><AA Id="100" /><AA Id="19" /> </A>'

select id,v=replace(replace(replace(cast(XmlDoc as nvarchar(max)),'"/><AA Id="',','),'<A><AA Id="',''),'"/></A>','')
from @a
hanbing_zjp 2009-06-17
  • 打赏
  • 举报
回复
在数据库中实现
chowyi 2009-06-17
  • 打赏
  • 举报
回复
用正则表达式......

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧