Oracle查询中将结果列按分组用逗号隔开,拼接成一行(listagg函数)

摘要:
在Oracle的select查询中,我们经常遇到对结果进行分组的情况。字段根据分组用逗号分隔,并拼接成一行显示,如下所示:A B A 1 A 2 B 3 B 4 A和B列是查询结果,现在显示如下:A B A 1,2 B 3,4可以使用listagg函数:selectA,listagg(B,',')withinggroup(或

  在Oracle的select查询中,我们经常遇到将结果进行分组,某个字段按照分组用逗号隔开,拼接成一行显示,如下:

    A  B

    a  1

    a  2

    b  3

    b  4

  A、B两列是查询结果,现要展示成如下:

    A  B

    a  1,2

    b  3,4

  可以使用listagg函数:

select A,listagg(B,',') within group (order by B) as B
  from table
group by A

  如果将select出来的一列全部转成行,那么group by语句都不需要:

select listagg(B,',') within group (order by B) as B
  from table

  结果是 1,2,3,4

  而且这个listagg函数可以放在查询语句的子查询里面,很方便

select id,loginid,
       (select listagg(h1.id,',') within group (order by h1.id)
          from hrmresource h1
         where h1.managerid = h.id) str
from hrmresource h

  Oracle查询中将结果列按分组用逗号隔开,拼接成一行(listagg函数)第1张

免责声明:文章转载自《Oracle查询中将结果列按分组用逗号隔开,拼接成一行(listagg函数)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VB创建类模块DLL文件多级nginx代理,获取客户端真实ip下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

安装PL/SQL Developer 遇到的问题及解决方法

在用PL/SQL Developer安装Oracle客户端时,报错误,初始化失败,一直找不到原因,换Oracle版本也解决不了问题,之后才发现,是Oracle的环境变量配置错了,之前用户配了Oracle全局环境变量在windows 开始菜单-->计算机--->右键属性--->高级系统设置-->最下边点环境变量-->系统变量--...

PL/SQL Developer导入导出Oracle数据库方法

   前一篇博客介绍了Navicat工具备份Oracle的方法。这篇博客介绍一下使用PL/SQL Developer工具导入导出Oracle数据库的方法。    PL/SQL Developer是Oracle数据库用于导入导出数据库的主要工具之中的一个,本文主要介绍利用PL/SQL导入导出Oracle数据库的过程。    1.Oracle数据库导出步骤...

ORACLE中能否找到未提交事务的SQL语句

  在Oracle数据库中,我们能否找到未提交事务(uncommit transactin)的SQL语句或其他相关信息呢?  关于这个问题,我们先来看看实验测试吧。实践出真知。   首先,我们在会话1(SID=63)中构造一个未提交的事务,如下所:   SQL> create table test   2  as   3  select * fro...

oracle10G/11G官方下载地址集合 直接迅雷下载

Oracle Database 11g Release 2 (11.2.0.1.0) for Microsoft Windows (64-bit) http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_1of2.zip http://download.oracle.c...

简单演示 Oracle 数据库并发导致段级锁(表级锁)

本文内容 软件环境 简单演示 Oracle 数据库并发导致段级锁(表级锁) 本文简单演示并发导致的行级锁。并发是两个以上的用户对同样的数据进行修改(包括插入、删除和修改)。锁的产生是因为并发。没有并发,就没有锁。并发的产生是因为系统需要,系统需要是因为用户需要。 软件环境 Windows 2003 Server Oracle 11g Rele...

win10 oracle11g Navicat 连接记录

一. 安装oracle11g服务端 1. 安装参考 https://www.cnblogs.com/liuhongfeng/p/5267549.html 2. 安装好后 oracle默认localhost访问的 需要再进行配置 服务端配置 tnsnames.ora 及 listener.ora 我的目录在 d:/app/Administrator/prod...