首页 > 解决方案 > 'FOR' 附近的语法不正确

问题描述

以下代码不起作用 -

SELECT [LY-1], 
       LY = STUFF((SELECT ',' + name FROM temp1 FOR XML PATH ('')), 1,      1, '' ) 
FROM temp1 
GROUP BY [LY-1];

因为它给出了以下错误-

消息 103010,级别 16,状态 1,第 73 行解析错误,第 2 行,第 36 列:“temp1”附近的语法不正确。

STUFF 和 FOR XML 是否不工作数据仓库?他们有什么选择吗?

标签: sql-servertsqlstring-aggregation

解决方案


我不认为等号按你想要的方式工作。假设 LY 是计算列而不是表中已存在的列,则查询应为:

SELECT [LY-1], 
       STUFF((SELECT ',' + name FROM temp1 FOR XML PATH ('')), 1,      1, '' ) AS LY
FROM temp1 
GROUP BY [LY-1];

要让 TSQL 创建计算列,您始终首先使用逻辑,然后为列命名。


推荐阅读