在SQL中,' as'中的括号是什么?条款意思?

时间:2015-09-08 17:09:42

标签: sql sql-server

我在SQL中进行一些XML查询,为了获得多个兄弟节点的属性,我需要执行以下查询:

select 
    C.value('@attribute[1]', 'varchar(30)') 
from 
    tblData
cross apply 
    XmlFieldL.nodes('/Data/Children') as T(C)

默认情况下,[1]仅提供第一项,因此交叉应用会绕过该项,并为每个子节点提供@attribute的列表。很酷,效果很好。

我的问题是T(C)周围的语法是什么?它看起来像乍看之下的某种功能,或者某种分组。我引用了C,但为什么需要T部分呢?语法是什么意思?

供参考,this was the original problem/solution并更好地描述它。我只是想了解我在这里做了什么。

2 个答案:

答案 0 :(得分:2)

T是派生表的别名。

C是从/Data/Children节点碎化的列名。

答案 1 :(得分:1)

基本上,.nodes()调用返回一个“伪表”,每个匹配的XML片段都有一列。

这就是T(对于伪表)和C(伪表中的列)引用的内容

相关问题