当前位置:   article > 正文

oracle根据a列中相同的值,获取将对应的B列中各个值合并的结果集

oracle a列一致 拼接b列

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

转载于:https://www.cnblogs.com/MasterE/p/6904005.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/425272
推荐阅读
相关标签
  

闽ICP备14008679号