sql - 如何解析 SQL server 表中的 XML 数据

标签 sql sql-server xml tsql

我有 SQL 表:

Create table
(
ID varchar(50) not null,
Action nvarchar(max) null
)

操作列包含 XML 数据。
格式:
<?xml version="1.0" encoding="UTF-8"?> 
<oo_outbound_order>   
         <oo_master>
              <Code>123</Code>
              <Name>Branan</Name> 
    </oo_master> 
    </oo_outbound_order>

如何解析此列?结果应该是这样的:
CODE    NAME
123     Branan

最佳答案

有很多关于使用 TSQL 解析 xml 的教程文章。例如,http://www.sqlserver.info/syntax/parse-xml-with-sql-server/

DECLARE @xml xml
SET @xml = 
'<?xml version="1.0" encoding="UTF-8"?> 
<oo_outbound_order>   
         <oo_master>
              <Code>123</Code>
              <Name>Branan</Name> 
    </oo_master> 
    </oo_outbound_order>'

SELECT 
    n.value('(./Code/text())[1]','int') as CODE
 , n.value('(./Name/text())[1]','Varchar(50)') as NAME
FROM @xml.nodes('/oo_outbound_order/oo_master') as a(n)

关于sql - 如何解析 SQL server 表中的 XML 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52255947/

相关文章:

mysql - 如何使用mysql中的find_in_set()函数来过滤数据?

sql - 如何在sql server中拆分字符串值

java - 在 xml 中自动生成 JUnit 结果的最佳方法是什么?

xml - 基于子级子值返回多个值来选择元素的 XPath?

c# - SQL Azure 与本地超时问题 - EF

sql - DocumentDB SQL 检查数组中的多个值

sql-server - 监控SQL日志文件

sql - 查询同一服务器上不同数据库中的两个表

c# - 参数 1 : cannot convert from 'string' to 'int' error in List

mysql - 没有分组依据的聚合列