SQL xml转table

本文介绍如何使用 SQL 语句创建虚拟表并插入包含 XML 数据的记录。通过 CROSS APPLY 函数结合 XPath 查询 XML 数据,实现从 XML 结构中抽取具体信息的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建虚拟表@Tmp

DECLARE @Tmp TABLE(ID INT,Resulr XML)

--插入数据

INSERT INTO @Tmp (ID,Resulr) VALUES (1,'<root><row><ID>1</ID><score>80</score></row><row><ID>2</ID><score>85</score></row></root>')
INSERT INTO @Tmp (ID,Resulr) VALUES (2,'<root><row><ID>1</ID><score>90</score></row><row><ID>2</ID><score>75</score></row></root>')

--原结果集

SELECT * FROM @Tmp AS t

<root>
  <row>
    <ID>1</ID>
    <score>80</score>
  </row>
  <row>
    <ID>2</ID>
    <score>85</score>
  </row>
</root>

--查询结果

SELECT t.ID,a.c1.value('ID[1]','int') AS xID
    ,a.c1.value('score[1]','int') AS score
FROM @Tmp AS t CROSS APPLY t.Resulr.nodes('root/row') a (c1)

 

转载于:https://www.cnblogs.com/tianmoxin/p/6121326.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值