首页 > 数据库技术 > 详细

Oracle:Group By 后将某一列整合成一个字段;同时置于In中

时间:2021-07-30 15:45:48      阅读:16      评论:0      收藏:0      [点我收藏+]

一、使用  listagg() WITHIN GROUP ()  将多行合并成一行

SELECT SUM(H.NUM) TOTAL_NUM, 
LISTAGG(H.DETAIL_ID,
,) WITHIN GROUP(ORDER BY H.A, H.B, H.C) DETAIL_IDS, H.A, H.B, H.C FROM TABLE1 H WHERE H.ID= 1 GROUP BY H.A, H.B, H.C

 

二、将字符串使用逗号分隔并放于IN查询语句中

SELECT CEIL(NVL(SUM(ABS(H.NUM)), 0) / OPPACK)                                               --CEIL 向上取整      NVL 校验是否未NULL
  FROM TABLE2 H
 WHERE H.RELATION_DETAIL_ID IN
      (SELECT REGEXP_SUBSTR(G.DETAIL_IDS, [^,]+, 1, LEVEL)
         FROM DUAL
      CONNECT BY REGEXP_SUBSTR(G.DETAIL_IDS, [^,]+, 1, LEVEL) IS NOT NULL)

 

Oracle:Group By 后将某一列整合成一个字段;同时置于In中

原文:https://www.cnblogs.com/cn-star/p/15078886.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!