I am using SQL Server Management Studio v15.0 and I'm trying to use GROUP_CONCAT()
or STUFF()
functions to get the concatenated result. But I am unable to draft a correct query.
I am getting the errors mentioned in the tagline.
I have 2 tables, User
and Userlanguages
.
A single user can have multiple languages associated. I want these multiple languages in a single row separated by a semi-colon (;)
My Userlanguages
table looks like this:
User | Language |
---|---|
ANDY | English |
ANDY | Korean |
ANDY | Spanish |
TOM | English |
TOM | Spanish |
Expected output :
User | Language |
---|---|
ANDY | English; Korean; Spanish |
TOM | English; Spanish |
Please suggest a proper SQL query to achieve this output.
SQL query used :
SELECT
[User].[userID]
STUFF((SELECT ', ' + [UserLanguages].[languagesID]
FROM UserLanguages
WHERE [User].[userID] = [UserLanguages].[userID_student]
FOR XML PATH('')), 1, 1, '')
FROM
User;
This is the error I get:
Msg 156, Level 15, State 1, Line 6
Incorrect syntax near the keyword 'FOR'.