oracle 的wm_concat 和mysql 的group_concat类似,主要是先分组,然后将分组后输入同组的的内容用","拼接在一期

例子:

SELECT a.period_id,wm_concat( b.activity_id) ACTIVITY_ID,wm_concat(a.lottery_number) LOTTERY_NUMBER,wm_concat(b.period_number) PERIOD_NUMBER,wm_concat(b.total_amount) COUNT,wm_concat(REPLACE(MOBILE, SUBSTR(a.mobile,4,4), '****')) MOBILE,wm_concat(TO_CHAR(b.open_time,'yyyy-mm-dd hh24:mi:ss') ) OPEN_TIME
FROM A5_PPS_SEIZE_LOTTERY a ,a5_pps_seize_activity_period b
WHERE a.period_id=b.period_id

那为什么我还wm_concat 那么多别的字段了?因为出来要返回period_id,mobile外,其他字段也需要返回,所有虽然拼接多了很多字段,但是有些自读是一样的,比如 ACTIVITY_ID等,这些自读返回后 用“,”切割成数组取出第一个就好了。

刚开始 使用ibatis映射时老是报错

Cause: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'ACTIVITY_ID)' in class 'java.lang.Object'

原始简化代码如下:

SELECT *
FROM(SELECT rownum rn,d.*FROM(SELECT a.period_id,wm_concat( b.activity_id)FROM A5_PPS_SEIZE_LOTTERY a ,a5_pps_seize_activity_period bWHERE a.period_id=b.period_idAND a.is_win     =1GROUP BY a.period_idORDER BY a.period_id DESC)d)
WHERE rn > 0
AND rn  <= 10 

发来发现  wm_concat( b.activity_id)  后面要取个别名,才会不报上面那个映射错误,正确写法如下

SELECT *
FROM(SELECT rownum rn,d.*FROM(SELECT a.period_id,wm_concat( b.activity_id) activity_idFROM A5_PPS_SEIZE_LOTTERY a ,a5_pps_seize_activity_period bWHERE a.period_id=b.period_idAND a.is_win     =1GROUP BY a.period_idORDER BY a.period_id DESC)d)
WHERE rn > 0
AND rn  <= 10 

oracle使用wm_concat 进行分组拼接相关推荐

  1. Oracle 分组拼接字符串

    oracle 根据分组拼接字符串,以指定分隔符分割,有两种方式 1)第一种方式,使用 listagg 函数 例子如下: select field1, field2, listagg(field,sep ...

  2. oracle vm concat指定分隔符,重写Oracle的wm_concat函数,自定义分隔符、排序

    oracle中,wm_concat函数是一个聚合函数,和mysql中的group_concat函数类似,不过group_concat函数比较强大,可以定义分隔符和排序,当然所谓强大是相对的,这里假使我 ...

  3. 数据库语句常见方法:(随机生成Id,结合CSAE...WHEN的使用,分组拼接字段数据

    随机生成ID/UUID 1.获取IDSELECT newid() 2.将UUID值中的-替换SELECT REPLACE( newid(), '-', '' ) 3.获取ID并转小写SELECT LO ...

  4. Oracle的wm_concat()函数与Mysql的group_concat()函数

    这两个函数的作用是相同的,它们的功能是:实现行转列功能,即将查询出的某一列值使用逗号进行隔开拼接,成为一条数据. 1.Oracle的wm_concat()函数 2.Mysql的group_concat ...

  5. Mybatis中(#{ })模糊查询like(使用oracle的concat函数嵌套拼接SQL)

    需求: 模糊查询需要左右各拼接一个'%',如:like %key% . 项目情况: mybatis中动态传参一般采用占位符#{key}.使用数据库:orecle. 错误的尝试: 尝试使用: like ...

  6. oracle不连续得时间如何分组,Oracle按不同时间分组统计的sql

    Oracle按不同时间分组统计的sql以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Oracle按不同时间分组统计的s ...

  7. Oracle中wm_concat函数报错解决方法

    Oracle中wm_concat函数报错解决方法 参考文章: (1)Oracle中wm_concat函数报错解决方法 (2)https://www.cnblogs.com/52net/archive/ ...

  8. oracle按层级分组,oracle按照指定列分组合计group by rollup()

    group by rollup() 按分组合计 select grouping(status),status,owner,object_type,count(*) from dba_objects w ...

  9. Oracle数据库wm_concat()函数的使用方法

    oracle数据库中wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oracle数据库wm_concat(column)函数实现字段合并 如: shopping: --- ...

最新文章

  1. fastjson 的作者,在阿里内网挨骂了?!
  2. 那些承包欧美学生论文的肯尼亚人:平台抽成一半,学生工日薪200
  3. 一款全屏图片滑动js 插件 超快捷
  4. Mysql——case函数
  5. Faster-rcnn详解
  6. 避免某个子窗体重复运行的方法(showdialog、show)
  7. github里的默认域_恕我直言!你对Python里的import一无所知
  8. 服务器运行容器工具大盘点!
  9. java 类锁如何获得_Java Synchronized获得类的锁和获得对象的锁有什么区别呢?
  10. pytorch nn.Softmax
  11. MySQL group by语句用法
  12. 1.4补充 三态缓存(tristate buffer)与 多路复用器(Multiplexers)
  13. rest-assured实战
  14. Error 遇到错误:请求通道在等待 00:01:00 以后答复时超时。增加传递给请求调用的超时值,或者增加绑定上的 SendTimeout 值。分配给此操作的时间可能已经是更长超时的一部分
  15. 易宝典——玩转O365中的EXO服务 之五十 如何知道微软管理员进行了哪些操作
  16. C++提高进阶,你知道多少?
  17. 计算机休眠唤醒后分辨率变小了,WIN10休眠唤醒后,所有的窗口都跑到了左上角,如何解决?...
  18. 三种近场通信技术的特点
  19. php判断浏览器语言国内外,PHP判断浏览器语言
  20. 飞机大战之-添加背景

热门文章

  1. 数据库设计工具ERwin介绍
  2. 快来看,SATA秘籍惊现江湖!!!
  3. Xshell 能显示中文 但输入的中文都变成了问号
  4. RTX 2080、RTX 2080Ti 概览
  5. AR技术,让生活变得更加智能与多彩
  6. soapclient
  7. mysql 获取日期前一天 后一天
  8. JSP中的${param.属性}用法
  9. HTML5添加网页背景音乐
  10. 中国移动和中国电信两强相争,互攻对方优势业务