zoukankan      html  css  js  c++  java
  • oracle行转列(连接字符串函数)

    方法一:wmsys.wm_concat(column)      

    介绍:其函数在Oracle 10g推出,在10g版本中,返回字符串类型,在11g版本中返回clob类型。括号里面的参数是列,而且可以是多个列的集合,也就是说在括号里面可以自由地用‘||’合并字符串。如下面的例子: Select u_id, wmsys.wm_concat(goods || '(' || num || '斤)' ) goods_sum   from shopping   group by u_id

    方法二:listagg (column,[,]) within group (order by ) [over (partition by  )]           

    介绍:其函数在Oracle 11g 版本中推出,对分组后的数据按照一定的排序进行字符串连接。其中,“[,]”表示字符串连接的分隔符,如果选择使用[over (partition by )]则会使其变成分析函数;

    方法三:sys_connect_by_path(column,<分隔符>)          

    介绍:其函数在Oracle 9i 版本中推出,用来合并链路的字符串。注意的是其一定要和connect by子句合用!

    第一个参数是形成树形式的字段,第二个参数是父级和其子级分隔显示用的分隔符。

    以上内容转自:http://blog.sina.com.cn/s/blog_a637e97e01014pqo.html

    使用注意:

    SELECT c.gysid, listagg(c.wzlbid,',') within GROUP (ORDER BY c.wzlbid)   FROM  wzgl_gys_zrwmfw c GROUP BY gysid  

    这几个方法都可以实现行转列,达到想要的效果。

    但当数据量比较大时却报ORA-01489:字符串连接的结果过长。

    此时个人的解决办法,只能转到程序代码中去处理。

    希望,以此为鉴!

  • 相关阅读:
    TP中模型实例化
    PHP中面向对象编程思想的3个特征
    static关键字的新用法
    PHP中与类有关的运算符
    PHP中与类和对象有关的几个系统函数
    PHP中与类有关的几个魔术常量
    PHP与类有关的几个魔术方法
    PHP中类型约束
    PHP对象类型转换
    ubuntu MySQL拒绝远程连接(10061)
  • 原文地址:https://www.cnblogs.com/liuzhixian/p/3310006.html
Copyright © 2011-2022 走看看