oracle11g 列转行样例

来源:互联网 发布:c语言购物卡制卡系统 编辑:程序博客网 时间:2024/05/29 18:37
 declare
   sqlstr varchar2(8000) := '';
begin
   select WM_CONCAT(''''||acct_period||'''') into sqlstr 
   from (
     SELECT acct_period  FROM a5_mobile_account t  where acct_period>=201703  GROUP BY acct_period
   ) t;
   sqlstr:='SELECT *  FROM (SELECT acct_period,credit FROM  a5_mobile_account ) 
   PIVOT (
 SUM(credit) FOR acct_period 
           
   IN  ('||sqlstr||')
  ) ORDER BY 1';
  execute immediate sqlstr;
  
  sqlstr := 'CREATE OR REPLACE VIEW tmp_result  AS '|| sqlstr;
  execute immediate sqlstr;
end;




select * from tmp_result 
0 0
原创粉丝点击