Oracle函數--字符串拼接


常用的字符串聚合(拼接)函數介紹

1.WMSYS.WM_CONCAT

  從oracle 10G開始支持,使用案例如下:

  select deptno,wmsys.wm_concat(ename)
  from emp
  group by deptno;

  若想將字符之間的分隔符換成其他標點,可添加一個replace函數

    select deptno,replace(wmsys.wm_concat(ename),',','、')
    from emp
    group by deptno;

2.LISTAGG(measure_expr,delimiter) WITHIN GROUP(order_by_clause) OVER(query_partition_clause)

  從oracle 11G R2開始支持,可以自己指定分隔符,拼接的字符串可以按照某列排序,使用案例如下:

    select deptno,Listagg(ename, '、') Within Group (Order by sal)
    from emp
    group by deptno;

3.SYS_CONNECT_BY_PATH

   從oracle 9i開始支持,有2個參數,第一個參數是形成樹形式的字段,第二個參數是父級和其子級分隔顯示用的分隔符,該函數適用於有父子關系的樹形結構顯示,使用案例如下:

 select MAX(deptno),max(substr(sys_connect_by_path(ename,'-'),2))
    from emp
    where deptno=10
    start with ename='KING'
    connect by prior empno=mgr
    ;    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM