You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL解析XML字段为表格返回全NULL问题求解

问题原因

原SQL的XPath写法逻辑错误:存储的XML内容中,foo1、foo2、foo3是<row>节点的属性,而非<row>节点下的子元素。原语句中foo1[1]的写法是查找当前节点下名为foo1的第一个子元素,无法匹配到对应内容,因此所有字段返回值均为NULL。

修正后的SQL语句

读取XML节点属性时,需要在属性名前加@前缀做标识,修改后即可得到预期结果:

SELECT 
  n.x.value('@foo1[1]', 'Varchar(10)') as foo1, 
  n.x.value('@foo2[1]', 'Varchar(10)') as foo2, 
  n.x.value('@foo3[1]', 'Varchar(10)') as foo3
FROM Table1
CROSS APPLY Field1.nodes('/row') n(x)
相关XPath基础规则
  • 直接写名称:匹配当前节点路径下的同名子元素
  • 名称前加@:匹配当前节点上的同名属性

内容的提问来源于stack exchange,提问作者goryef

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 21:24:20