Oralce分析函数

1 列传行  listagg(city,',')  within GROUP (order by city)    over (partition by nation) rank 

 with temp as(  
      select 500 population, 'China' nation ,'Guangzhou' city from dual union all  
      select 1500 population, 'China' nation ,'Shanghai' city from dual union all  
      select 500 population, 'China' nation ,'Beijing' city from dual union all  
      select 1000 population, 'USA' nation ,'New York' city from dual union all  
      select 500 population, 'USA' nation ,'Bostom' city from dual union all  
      select 500 population, 'Japan' nation ,'Tokyo' city from dual   
    )  
    select population,  
           nation,  
           city,  
           listagg(city,',') within GROUP (order by city) over (partition by nation) rank  
    from temp 

参考帖子 :http://dacoolbaby.iteye.com/blog/1698957

2 分割函数

select name ,workcode,
NVL(SUBSTR(LTRIM(contract1, '-'),
                  0,
                  INSTR(LTRIM(contract1, '-'), '-', 1) - 1),
           LTRIM(contract1, '-')) AS contract1_name,
           REGEXP_SUBSTR(LTRIM(contract1, '-'), '[^-]+', 1, 2) AS contract1_begin,
           REGEXP_SUBSTR(LTRIM(contract1, '-'), '[^-]+', 2, 3) AS contract1_end,
           REGEXP_SUBSTR(LTRIM(contract1, '-'), '[^-]+',3,4) AS contract1_type

from  lsq_result2018_1

lsq_result2018_1 的表结构

 

分割后:

原文地址:https://www.cnblogs.com/abc8023/p/8483131.html