行データをカンマ区切り表示
ORACLE, MYSQLの場合
GROUP_CONCATを使用する。
SELECT GROUP_CONCAT(CLM_NAME) FROM TABLENAME;
- テスト用データ差癖
create table test1 (clm1 int, clm2 text(500)); insert into test1 values (1, 'abc'); insert into test1 values (1, 'def'); insert into test1 values (2, 'ghj'); insert into test1 values (2, 'ttt');
- SQL実行
select clm1, group_concat(clm2) from test1 group by clm1; +------+--------------------+ | clm1 | group_concat(clm2) | +------+--------------------+ | 1 | abc,def | | 2 | ghj,ttt | +------+--------------------+ 2 rows in set (0.00 sec)
MS SQL Server の場合
FOR XML PATH('')を使用
SELECT NAME ,( SELECT NAME + ',' FROM USERS WHERE USER_GROUP_ID = GROUPS.ID FOR XML PATH('') ) AS USER_NAMES FROM GROUPS