`
peonyzzdx
  • 浏览: 581661 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

listagg

阅读更多
wm_concat和listagg都可以把列拼接成行,11g下wm_concat没有自带的排序功能,弱爆了,要么在内层排序增加开销,要么用over(partition by b order by a) 产生一堆废数据,listagg方便多了,用法:
a    |    b
-----------
A    |    1
B    |    2
C    |    3
select listagg(a,',') within group (order by b) ,listagg(b,',') within group (order by b)
from xxx --其中','可替换成其他字符
---------------------
A,B,C   |   1,2,3





sql.append("select distinct(a.fwzl),lx.id,a.fwcode, a.fwid, c.qlid, c.qlrmc,c.syqzsh,a.fwdh,a.jzmj");
        sql.append(" from " + SCHEMA.FWDJ + ".Tpf_Jcdjb a, (select listagg(r.qlrmc ,',') within group (order by r.qlrmc)  as qlrmc,");
        sql.append("listagg( b.syqzsh ,',') within group (order by r.qlrmc) as syqzsh,b.fwcode,b.qlid from " + SCHEMA.FWDJ + ".tpf_syqdjb b, " + SCHEMA.FWDJ + ".tpf_qlr r");
        sql.append(" where r.ywslid = b.ywslid and r.id = b.qlrid  and r.sfls = 0  and b.sfls = 0 and b.fwcode is not null ");

        sql.append(" group by b.fwcode, b.qlid) c," + SCHEMA.LSJZBH + ".tpkr_lsjzfwcqgx lx  where c.fwcode = a.fwcode and  a.fwcode =lx.fwcode and lx.fwcode=c.fwcode and a.sfls=0");
       
分享到:
评论

相关推荐

    【Oracle】LISTAGG函数的使用.pdf

    【Oracle】LISTAGG函数的使用.pdf

    Oracle函数之LISTAGG

     For a specified measure, LISTAGG orders data within each group specified in the ORDER BY clause and then concatenates the values of the measure column.  即在每个分组内,LISTAGG根据order by子句对...

    ACCESS 分组合并

    由于ACCESS 没有oracle的listagg函数,也没有sql server这种 for xml path 这种, 要实现分组合并需要自定义一个函数,理解了 for xml path 这个就很好理解了。

    数据结构————二差排序树标准写法

    二差排序树树,关于数据结构的二差排序树,仅供参考!!!!!!!!!!!!!!!!!!!

    Oracle SQL实用讲解,最基本最实用的相关讲解

    WITH –-小九九算法 t_base AS (SELECT LEVEL AS lv FROM dual CONNECT BY LEVEL ), ...SELECT listagg(t_join.text, ' ') within GROUP(ORDER BY t_join.lv_b) AS m99 FROM t_join GROUP BY t_join.lv_a;

    Oracle10g自定义聚合函数(字符串拼接)

    * 自定义聚合函数 wmsys.wm_concat 替换办法 * 超大字符串拼接,单个字符串4000、分隔符100... * Oracle11g Release2版本引入了LISTAGG 函数,使得聚集连接字符串变得很容易。并且允许使用我们指定连接串中的字段顺序

    C#俄罗斯方块程序设计

    文档说明了基本的俄罗斯方块的设计过程以及代码!

    SQL袖珍参考手册(第3版)

    Functions new to Oracle, such as LISTAGG, NTH_VALUE, and more PostgreSQL’s support of recursive WITH and some window functions DB2 syntax and datatypes, some compatible with Oracle MySQL features ...

    Access数据库-List列表框控件应用

    Access数据库-List列表框控件应用

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    8.7.11 Listagg 217 8.8 性能调优 218 8.8.1 执行计划 218 8.8.2 谓语 219 8.8.3 索引 220 8.9 高级话题 221 8.9.1 动态SQL 221 8.9.2 嵌套分析函数 222 8.9.3 并行 223 8.9.4 PGA大小 224 8.10 组织行为...

    oracle收集

    oracle日常收集内容,平时工作积累listagg行转列

    SQL删除多列语句的写法

    最近在写SQL过程中发现需要对一张表结构作调整(此处是SQL Server),其中需要删除多列,由于之前都是一条SQL语句删除一列,于是猜想是否可以一条语句同时删除多列,如果可以,怎么写法? 第一次猜想如下(注意:...

    【SQL 必知必会】 性能篇 01. 如何考虑数据库调优

    1. 数据库调优的对象与目标 对象:整个DBMS,包括 SQL查询,数据库部署配置,架构等 目标:数据库响应时间快,吞吐量更大。 2. 调优考虑的维度有哪些 用户反馈:是最及时的,是最直接的。 日志分析:通过数据库日志...

    oracle 10g 11g 12c 19c 21c 23c 重建wm-concat函数脚本

    oracle 10g 11g 12c 19c 21c 23c 重建wm_concat函数脚本 varchar类型clob类型报错不用listagg ORA-01790: 表达式必须具有与对应表达式相同的数据类型 ORA-00904: “WM_CONCAT“: invalid identifier 解决 owmaggrb....

    oracle材料

    含listagg函数 (行列转换) ,Oracle-SQL-Developer-使用简要说明,oracle导入导出语句,Oracle远程登录,rownum分组排序,wm_concat列转行

    12C开始_wm_concat函数.sql

    Oracle从12C版本开始,不支持wm_concat函数,我们可以采取的办法有使用listagg函数代替wm_concat函数,或者为了减小修改程序的工作量,可以通过手工创建wm_concat函数来解决这个问题。

    data_access:使用内存数据库的可扩展、低延迟、高并发数据访问层实现

    要添加到内置函数列表中的 VoltDB 存储过程,例如:像 group_concat(又名 listagg)这样的 UDF 像爆炸的 UDTF 通过 JDBC 动态执行 DDL 将多个 SQL 语句绑定到一个事务中创建表插入少量记录(使用 Insert into ...

    psftpp:PA和PeopleSoft

    PSFT_PP 修改后的PeopleSoft现金会计解决方案PeopleSoft中的收入确认如何在PeopleSoft中创建新的业务单元如何在PSQuery中使用LISTAGG什么是PS Financial GatewayPeopleCode / SQL可能会很方便地在Integration Broker...

Global site tag (gtag.js) - Google Analytics