从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)