首页 > 解决方案 > 文本子句解释

问题描述

我正在使用我在第三方网站上发现的以下代码来帮助连接一些数据(代码有效,我只是想更好地理解它)。但是,我在辨别第 4 行中的“[text()]”子句和第 8 行中的 (' ') 的目的时遇到了麻烦(SQL 新手)。

SELECT DISTINCT ST2.[Financial Number], 
SUBSTRING(
    (
        SELECT ','+ST1.[Clinical Event Result]  AS [text()]
        FROM ED_FCT_Q1_FY19 ST1
        WHERE ST1.[Financial Number] = ST2.[Financial Number]
              Order BY [Financial Number] 
        FOR XML PATH ('')
    ), 2, 1000) [Clinical]
FROM ED_FCT_Q1_FY19 ST2

标签: sql-server

解决方案


根据文档,使用 FOR XML 的 PATH 模式时,

对于名称为 text() 的列,将该列中的字符串值添加为文本节点

因此,在这种情况下,该列不会像在普通查询中那样被视为列名别名SELECT,而是用于 XML 映射的目的。


推荐阅读