在SQL Server中如何解析Varchar列的<item>标签字符串为列?
解析SQL Server中Varchar列的类XML字符串为行数据
你可以通过给原字符串补充根节点转换为合法XML,再利用SQL Server的XML解析功能拆分提取数据,示例代码如下(假设你的表名为YourTable,存储该字符串的列名为XmlStringColumn):
SELECT item.value('@id', 'INT') AS [Item ID], item.value('@value', 'INT') AS [value] FROM ( -- 补充根节点,将Varchar字符串转换为XML类型 SELECT CAST('<root>' + XmlStringColumn + '</root>' AS XML) AS XmlData FROM YourTable ) AS t -- 拆分每个<item>节点为单独行 CROSS APPLY XmlData.nodes('/root/item') AS Items(item)
代码说明:
- 补充根节点:原字符串缺少顶级根元素,直接转换XML会失败,因此用
<root>包裹原字符串,确保是合法的XML结构。 - 拆分节点:使用
CROSS APPLY结合nodes()方法,将XML中的每个<item>节点拆分为独立的行。 - 提取属性:通过
value()方法读取每个<item>节点的id和value属性,并转换为INT类型(可根据实际需求调整数据类型)。
内容的提问来源于stack exchange,提问作者RJ akhil
相关产品推荐
相关产品推荐

