Oracle 行转列,列转行函数

--行转列函数 

--在oracle中,使用一条语句实现将'17,20,23'拆分成'17','20','23'的集合。

SELECT regexp_substr('17,20,23', '[^,]+', 1, rownum) single_data
  FROM dual
CONNECT BY rownum <=
           length('17,20,23') - length(REPLACE('17,20,23', ',', '')) + 1;

--列转行函数

select listagg(f.REQUEST_ID, ';') within group(order by f.REQUEST_ID) request_id
  from fnd_concurrent_requests f, fnd_user fu
 where 1 = 1
   and fu.USER_ID = f.REQUESTED_BY
   and fu.USER_NAME = 'WS_USER'
   and f.CONCURRENT_PROGRAM_ID in (60331, 45092)
   and rownum < 10;
 
 

猜你喜欢

转载自www.cnblogs.com/lequn/p/10553409.html