通常は同じ値を持つ複数の行を単一の行に返す SQL クエリを変更する方法はありますか?
たとえば、既存のクエリがこれを返す場合:
ColA ColB
1 AA
1 BB
1 CC
2 AA
3 AA
3 行のみが返されるようにクエリを変更し、1 の 2 番目と 3 番目の結果を最初の行に配置して、次の行を作成できます1 AA BB CC
か?
通常は同じ値を持つ複数の行を単一の行に返す SQL クエリを変更する方法はありますか?
たとえば、既存のクエリがこれを返す場合:
ColA ColB
1 AA
1 BB
1 CC
2 AA
3 AA
3 行のみが返されるようにクエリを変更し、1 の 2 番目と 3 番目の結果を最初の行に配置して、次の行を作成できます1 AA BB CC
か?
あまり良くありませんが、機能しています( group_concat
MySqlにはありません):
SELECT ColA,
ColB=STUFF(
(SELECT ' ' + ColB
FROM dbo.Table1 t2
WHERE t1.ColA = t2.ColA
FOR XML PATH (''))
, 1, 1, '')
FROM dbo.Table1 t1
GROUP BY ColA
[編集:何らかの理由でSQL-Serverと推定される]