【发布时间】:2019-03-06 18:04:25
【问题描述】:
我有一个查询,我试图将两行的不同值连接起来。我使用的是 Azure SQL DW,它不支持 XML 函数。
这是我写的查询:
SELECT CAST(STUFF((
SELECT ',' + cast(s.MONTH_ID AS VARCHAR(6))
FROM (
SELECT DISTINCT CAST(MONTH_ID AS VARCHAR(6)) AS MONTH_ID
FROM dbo.MARGIN_CLASS_FACT
) s
FOR XML PATH('')
), 1, 1, '') AS VARCHAR(35)) AS MONTH_ID;
当我使用 FOR XML PATH 我收到此错误 ** 消息 103010,第 16 级,状态 1,第 1 行 第 1 行解析错误,第 212 列:'FOR' 附近的语法不正确。**
输入是:
2018
2019
结果输出应该是这样的:
201808,201809
【问题讨论】:
-
Stuff / FOR XML 代码是针对 Sql Server 缺乏 MySql 的 GROUP_CONCAT 功能的传统破解。尽管 Sql Server 本身现在终于有了 STRING_AGG,但 Azure DWH 上尚不支持复制链接。
标签: sql tsql azure-sqldw