【问题标题】:In SQL, what do the parentheses in the 'as' clause mean?在 SQL 中,'as' 子句中的括号是什么意思?
【发布时间】:2015-09-08 17:09:42
【问题描述】:

我在 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 更好地描述了它。我只是想弄清楚我在这里做什么。

【问题讨论】:

标签: sql sql-server


【解决方案1】:

T 是您派生表的别名。

C 是从/Data/Children 节点中分解出来的列名。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-12
      • 2013-05-28
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      相关资源
      最近更新 更多