2016-11-29 14:06:42 (Tue);
複数行をカンマ区切りで集約する
テストデータ作成
DROP TABLE DATATBL
CREATE TABLE DATATBL(No INT, Area1 Varchar(100), Area2 Varchar(100))
INSERT INTO DATATBL
SELECT '1', '北海道' ,'札幌市' UNION ALL
SELECT '2', '北海道' ,'函館市' UNION ALL
SELECT '3', '神奈川県' ,'横浜市' UNION ALL
SELECT '4', '神奈川県' ,'川崎市' UNION ALL
SELECT '5', '神奈川県' ,'三浦郡'
SELECT * FROM DATATBL
No Area1 Area2
---- ---------------- ---------
1 北海道 札幌市
2 北海道 函館市
3 神奈川県 横浜市
4 神奈川県 川崎市
5 神奈川県 三浦郡
サンプルSQL
SELECT
No
, Area1
, Area2
, STUFF((
SELECT ',' + tbl2.Area2
FROM DATATBL tbl2
WHERE tbl1.Area1 = tbl2.Area1
ORDER BY tbl2.No desc
FOR XML PATH ('')), 1,1,'') AS csv_data
FROM
DATATBL tbl1
No Area1 Area2 csv_data
---- ---------------- ----------- ------------------------
1 北海道 札幌市 函館市,札幌市
2 北海道 函館市 函館市,札幌市
3 神奈川県 横浜市 三浦郡,川崎市,横浜市
4 神奈川県 川崎市 三浦郡,川崎市,横浜市
5 神奈川県 三浦郡 三浦郡,川崎市,横浜市
おまけ
最終更新:2016年11月29日 14:06