首页 > 解决方案 > “GROUP_CONCAT”不是可识别的内置函数名称。- 关键字“FOR”附近的语法不正确

问题描述

我正在使用 SQL Server Management Studio v15.0,并且我正在尝试使用GROUP_CONCAT()orSTUFF()函数来获取连接结果。但我无法起草正确的查询。

我收到标语中提到的错误。

我有 2 张桌子,User并且Userlanguages.

单个用户可以关联多种语言。我希望将这些多种语言放在一行中,用分号 (;) 分隔

我的Userlanguages表如下所示:

用户
安迪 英语
安迪 韩国人
安迪 西班牙语
汤姆 英语
汤姆 西班牙语

预期输出:

用户
安迪 英语; 韩国人; 西班牙语
汤姆 英语; 西班牙语

请建议一个适当的 SQL 查询来实现此输出。

使用的 SQL 查询:

SELECT  
    [User].[userID]
    STUFF((SELECT ', ' + [UserLanguages].[languagesID]
           FROM UserLanguages
           WHERE [User].[userID] = [UserLanguages].[userID_student]
           FOR XML PATH('')), 1, 1, '')
FROM 
    User;

这是我得到的错误:

消息 156,级别 15,状态 1,第 6 行
关键字“FOR”附近的语法不正确。

标签: sql-servertsqlstring-aggregation

解决方案


推荐阅读