最近编码过程中出现了group by后,某些列会有多个值,而我需要把这些多个值的列进行拼接的情况,和大家分享一下。

有如下表student:

我们希望以class分组,每组的信息平铺,效果如下

分组首先想到的肯定是group by:

select * from student s group by s.class;

我们会发现这样会报错,因为name和age有多个值,这个时候我们就可以使用wm_concat()方法来解决。

select wm_concat(s.name),wm_concat(s.age),s.class from student s gruop by s.class;

但是这个写法又出现了一个新的问题,你会发现name和age这列的结果是

只需要把wm_concat前面加一个to_char就好了,而且结果就是上面想要的结果。

select to_char(wm_concat(s.name)) as name,
to_char(wm_concat(s.age)) as age,
s.class
from student s
gruop by s.class;
---------------------
还有一个函数LISTAGG(‘参数一’,’参数二’),这个函数和wm_comcat的作用类似,第一个参数是字段,第二个参数是多个值之间的分隔符,但是用法有些不同,例子如下:

select listagg(s.name,'-')within group(order by class) as name,
to_char(wm_concat(s.age)),
s.class
from student s
gruop by s.class;
---------------------

来源:https://blog.csdn.net/yufeng1397/article/details/78672607

转载于:https://www.cnblogs.com/sandswitch/p/11124758.html

oracle在group by时某列有多个值的拼接相关推荐

  1. Oracle中group by用法

    Oracle中group by用法 在select 语句中可以使用group by 子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使用聚组函数返回的是每一个组的汇总 ...

  2. Oracle中group by用法

    在select 语句中可以使用group by 子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句 限制返回的结果集.group by 子句可以将查询结果 ...

  3. 8、Oracle:group by用法

    第一部分: 来自: http://blog.csdn.net/yanyu529584640/article/details/50616053 首先group by 的简单说明: group by 一般 ...

  4. oracle group by 两项,Oracle中group by 的扩展函数rollup、cube、grouping sets

    Oracle的group by除了基本使用方法以外,还有3种扩展使用方法,各自是rollup.cube.grouping sets.分别介绍例如以下: 1.rollup 对数据库表emp.如果当中两个 ...

  5. oracle多表groupby,Oracle中group by用法

    Oracle中group by用法 在带有group by 子句的查询语句中,在select 列表中指定的列要么是group by 子句中指定的列,要么包含聚组函数 简单用法 select max(s ...

  6. 【DB笔试面试639】在Oracle中,什么是多列统计信息(Extended Statistics)?

    ♣ 题目部分 在Oracle中,什么是多列统计信息(Extended Statistics)? ♣ 答案部分 Oracle优化器对于基数值的估算是否准确关系到能否生成最优的执行计划,而基数值估算的准确 ...

  7. Oracle数据库表设计时的注意事项

    Oracle数据库表设计时的注意事项  表是Oracle数据库中最基本的对象之一.万丈高楼从平地起,这个基础对象对于数据库来说,非常重要.因为其设计是否合理,直接跟数据库的性能相关.从Oracle数据 ...

  8. Oracle 11g新特性之--虚拟列(Virtual Column)

    Oracle 11g新特性之--虚拟列(Virtual Column) Oracle 11G虚拟列Virtual Column介绍 在老的 Oracle 版本,当我们需要使用表达式或者一些计算公式时, ...

  9. oracle+字段+virtual,Oracle 11g新特性之--虚拟列(Virtual Column)

    Oracle 11g新特性之--虚拟列(Virtual Column) Oracle 11G虚拟列Virtual Column介绍 在老的 Oracle 版本,当我们需要使用表达式或者一些计算公式时, ...

最新文章

  1. 动态规划:连续子数组的最大和
  2. 奇迹觉醒qq服务器比微信少,十年内最大的奇迹!功能比QQ还少的微信为什么能成功?...
  3. strcpy、memcpy和memset的区别
  4. 手机号正则表达式验证_还不会正则表达式?看这篇!
  5. ssdp安全-攻击和防御
  6. excel运行python_使用PyXLL在Excel中执行Python脚本
  7. go list指针_「GCTT 出品」Go 语言机制之内存剖析
  8. 算法——动态规划算法求解字符串的编辑距离
  9. FastAPI系列(1):FastAPI简介
  10. 在线重建索引 oracle,ORACLE重建索引详解
  11. Oracle --- 表空间
  12. Docker容器下安装ubantu,其中 command not found 的问题(已经解决)
  13. 崩坏3服务器维护2月8号,《崩坏3》2月8日更新内容 符华月轮正式上线
  14. wifi快速漫游实例分析
  15. spring boot中小学餐饮配送系统 毕业设计-附源码645661
  16. 国产cms java_国产java类cms v3.0.161109
  17. 市场调研-全球与中国企业数据丢失预防(EDLP)产品市场现状及未来发展趋势
  18. windows连接的蓝牙设备(如小爱同学),无法调节音量
  19. 15_MySQL存储过程与存储函数
  20. 人生感悟,心灵的独白

热门文章

  1. 电视机原理图_电工电气,如何看电气原理图和接线图,如何设计图纸?
  2. es6中的类及es5类的实现
  3. python-列表list和元组tuple
  4. array reduce
  5. Property Animator 属性动画概述与示例
  6. (转)Eclipse平台技术概述
  7. [SharePoint][SharePoint2013循序渐进]SPS2013简介
  8. Linux 中vim编辑器学习笔记
  9. GIS实战应用案例100篇(十五)-CASS插件应用:如何控制点属性与点名统一
  10. java数据抽取到数据仓库_关于数据增量抽取的模拟实现——脚本实现