oracle数据库将多个列的查询结果集合并到一行中
来源:互联网 发布:淘宝上电动涡轮增压器 编辑:程序博客网 时间:2024/06/18 07:05
oracle数据库将多个列的查询结果集合并到一行中
在学习和开发过程中我们经常会遇到这样的问题:当我们需要把某一些查询到的结果合并并插入到数据库中的某一行时,会变得很麻烦。在某些情况下,我们可能可以借助诸如java、C等编程语言帮我们解决这样的问题,但这么做是非常不灵活的。如果只是用数据库,如何实现呢?首先我们想到的是使用存储过程或者使用函数,通过连接符将需要的结果集合并。但有时我们可能仅需要少量这样的操作,单单为少数几次写一个存储过程或者函数又会变得麻烦。而且,如果使用函数或者存储过程,多数情况下我们会使用效率低下的循环来完成。这会使得程序的运行效率低下。
在一次与同事的交流中,无意发现了这样一个函数listagg()函数。
listagg()函数会将某列的查询结果通过分组的形式合并成一行,并且我们可以在各个结果集中定义自己想要的分隔符。
案例:
select * from test;
select id,listagg(name,',') within GROUP (order by name) from test group by id;
listagg()函数合并结果时,我们可以通过order by 设置它合并的先后顺序,通过 group by 来设置它合并的条件。有点类似于sum()或者count()的使用方法。
值得注意的是,这个函数的连接符只会出现在查询结果的中间,而且这个合并会根据分组条件无限叠加。因此,当我们需要将结果插入数据表的某一行时,请记得加上长度限制(通常我们使用substr()函数将太长的部分去掉),以免出现数据丢失等情况。
1 0
- oracle数据库将多个列的查询结果集合并到一行中
- 条件查询List集合,由查询的结果,算出一行数据,添加到集合中!
- 查询到的结果集合并
- ORACLE 数据查询集合即:查询结果的集合操作 并集 交集 差集
- Oracle 查询结果集中的一行或多行
- Oracle数据库中把一个查询结果插入到一张表中
- Oracle数据库中把一个查询结果插入到一张表中
- 查询结果复制到其他数据库并建立新表
- mysql 查询结果导出文件并导入文件到数据库
- Oracle将查询的结果放入一张自定义表中并再查询数据
- Oracle树形查询 ,结果显示一行
- Oracle 如何将某一行记录放在查询结果的第一行【最后一行】
- MySQL:UNION -- 多张表查询出的结果集合并
- mysql把查询的结果集合并成一个字符串
- 完成一个100到200的平方,并将结果保存在一个数组中,要求输出的结果每三个换一行
- Oracle存储过程中执行查询返回的结果集,并使用java代码调用【转】
- oracle中sql语句中多个查询结果的交集、差集和并集
- ORACLE实现存储过程返回查询结果集合的方法
- [POJ3348]Cows(凸包)
- [BZOJ4105][Thu Summer Camp 2015]平方运算
- JavaAPI详解系列(2):String类(2)
- jade入门与初步使用
- 初步使用Cisco Packet Tracer 6.0
- oracle数据库将多个列的查询结果集合并到一行中
- linux定时执行任务
- Lable的富文本
- MySQL数据库的库表数据操作(复习1)
- maven入门介绍
- Chapter 2:空间配置器 allocator
- 不用中间变量,实现两个变量的交换
- mybatis源码学习之基础工程准备
- 监听器