あるテーブルのある項目をカンマ区切りで結合したい場合は、 XML PATHを使う事でSQLで取得することができる。
単一項目を結合する場合
Select
Left(Main.UserNames,Len(Main.UserNames)-1) As "UserNames"
From
(
SELECT
(
Select
UserName + ',' AS [text()]
From
dbo.UserMaster
For XML PATH ('')
) AS UserNames
) [Main]
グループ化して結合する場合
※こっちは参考のリンク先のSQLをほぼそのままお借りしてます
Select
Main.UserId,
Left(Main.Users,Len(Main.Users)-1) As "Users"
From
(
Select
distinct U2.UserId,
(
Select
U1.UserName + ',' AS [text()]
From
dbo.Users U1
Where
U1.UserId = U2.UserId
ORDER BY U1.UserId
For XML PATH ('')
) [Users]
From dbo.Users U2
) [Main]