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

TSQL中xml.nodes的T(N)语法与N.value()用法疑问

TSQL XML节点拆分语法说明

1. nodes()方法的作用

nodes()是SQL Server中XML类型的内置方法,作用是将XML对象中符合指定XPath路径的所有节点拆分为多行结果集。
你给出的示例中,首先将原字符串A,B,C,D,E转换为了如下XML结构:

<X>A</X>
<X>B</X>
<X>C</X>
<X>D</X>
<X>E</X>

调用@xml.nodes('X')就是把所有<X>节点拆分为5行,每行对应一个独立的<X>节点对象。

2. as T(N)的语法含义

这是TSQL中给nodes()返回的结果集设置别名的固定写法,和普通SQL给表起别名的逻辑一致,只是XML节点结果集需要同时指定两个别名:

  • T是整个多行结果集的表别名,可以替换为任意合法标识符,比如tmp、xml_tab都不影响运行
  • 括号内的N是结果集里的列别名,该列存储每行对应的单个XML节点对象,同样可以替换为任意合法标识符,比如x、single_node都可以

3. N.value()的含义

N就是刚才定义的、存储单个XML节点的列名。value()是XML节点对象的内置方法,作用是从节点中提取指定内容并转换为SQL的基础类型:

  • 第一个参数是XPath路径,.代表取当前节点本身的文本内容
  • 第二个参数是要转换的目标SQL类型,示例中是转换为最长10位的varchar类型

你可以将别名自定义为其他值,运行结果和原代码完全一致,比如:

SELECT single_node.value('.', 'varchar(10)') as value 
FROM @xml.nodes('X') as xml_tab(single_node)

注意:该语法为SQL Server独有的XML查询扩展,不属于标准SQL规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:36:06