oracle在group by时某列有多个值的拼接
最近编码过程中出现了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时某列有多个值的拼接相关推荐
- Oracle中group by用法
Oracle中group by用法 在select 语句中可以使用group by 子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使用聚组函数返回的是每一个组的汇总 ...
- Oracle中group by用法
在select 语句中可以使用group by 子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句 限制返回的结果集.group by 子句可以将查询结果 ...
- 8、Oracle:group by用法
第一部分: 来自: http://blog.csdn.net/yanyu529584640/article/details/50616053 首先group by 的简单说明: group by 一般 ...
- oracle group by 两项,Oracle中group by 的扩展函数rollup、cube、grouping sets
Oracle的group by除了基本使用方法以外,还有3种扩展使用方法,各自是rollup.cube.grouping sets.分别介绍例如以下: 1.rollup 对数据库表emp.如果当中两个 ...
- oracle多表groupby,Oracle中group by用法
Oracle中group by用法 在带有group by 子句的查询语句中,在select 列表中指定的列要么是group by 子句中指定的列,要么包含聚组函数 简单用法 select max(s ...
- 【DB笔试面试639】在Oracle中,什么是多列统计信息(Extended Statistics)?
♣ 题目部分 在Oracle中,什么是多列统计信息(Extended Statistics)? ♣ 答案部分 Oracle优化器对于基数值的估算是否准确关系到能否生成最优的执行计划,而基数值估算的准确 ...
- Oracle数据库表设计时的注意事项
Oracle数据库表设计时的注意事项 表是Oracle数据库中最基本的对象之一.万丈高楼从平地起,这个基础对象对于数据库来说,非常重要.因为其设计是否合理,直接跟数据库的性能相关.从Oracle数据 ...
- Oracle 11g新特性之--虚拟列(Virtual Column)
Oracle 11g新特性之--虚拟列(Virtual Column) Oracle 11G虚拟列Virtual Column介绍 在老的 Oracle 版本,当我们需要使用表达式或者一些计算公式时, ...
- oracle+字段+virtual,Oracle 11g新特性之--虚拟列(Virtual Column)
Oracle 11g新特性之--虚拟列(Virtual Column) Oracle 11G虚拟列Virtual Column介绍 在老的 Oracle 版本,当我们需要使用表达式或者一些计算公式时, ...
最新文章
- 动态规划:连续子数组的最大和
- 奇迹觉醒qq服务器比微信少,十年内最大的奇迹!功能比QQ还少的微信为什么能成功?...
- strcpy、memcpy和memset的区别
- 手机号正则表达式验证_还不会正则表达式?看这篇!
- ssdp安全-攻击和防御
- excel运行python_使用PyXLL在Excel中执行Python脚本
- go list指针_「GCTT 出品」Go 语言机制之内存剖析
- 算法——动态规划算法求解字符串的编辑距离
- FastAPI系列(1):FastAPI简介
- 在线重建索引 oracle,ORACLE重建索引详解
- Oracle --- 表空间
- Docker容器下安装ubantu,其中 command not found 的问题(已经解决)
- 崩坏3服务器维护2月8号,《崩坏3》2月8日更新内容 符华月轮正式上线
- wifi快速漫游实例分析
- spring boot中小学餐饮配送系统 毕业设计-附源码645661
- 国产cms java_国产java类cms v3.0.161109
- 市场调研-全球与中国企业数据丢失预防(EDLP)产品市场现状及未来发展趋势
- windows连接的蓝牙设备(如小爱同学),无法调节音量
- 15_MySQL存储过程与存储函数
- 人生感悟,心灵的独白