'FOR'

时间:2019-04-29 11:36:05

标签: sql-server tsql string-aggregation

以下代码不起作用-

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不能正常工作数据仓库吗?还有其他选择吗?

1 个答案:

答案 0 :(得分:0)

我认为等号并不起作用。假设LY是一个计算列,而不是表中已经存在的列,则查询应为:

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

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