從A查詢結果得到B查詢結果:
A
--源表 table_t
a b
廣東 廣州
廣東 深圳
廣西 南寧
廣西 北海
B
--結果表
a b
廣東 廣州,深圳
廣西 南寧,北海
使用SQL
select a,WMSYS.WMCONCAT(b) b from table_t group by a;
合並后的結果B列的數據類型是clob,可以使用to_char()轉換。
SQL如下
select a,to_char(WMSYS.WM_CONCAT(b)) b from table_t group by a
還有一種方法:
SQL> SELECT LISTAGG(B,',') WITHIN GROUP(ORDER BY B DESC) B,A FROM TABLE_T GROUP BY A; B A -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- 深圳,廣州 廣東 南寧,北海 廣西
使用LISTAGG函數,其語法是
LISTAGG(expr,['delimiter']) WITHIN GROUP(ORDER_BY_CLAUSE)