Rows into columns

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

create or replace package pivot

as

type rc is ref cursor;

procedure data ( p_cursor in out rc );

end;

create or replace package body pivot

as

procedure data( p_cursor in out rc )

is

l_stmt long;

begin

l_stmt := 'select tr_date';

for x in ( select distinct item_id from t order by 1 )

loop

l_stmt := l_stmt ||

', max(decode(item_id,' || x.item_id ||

', adult )) adult_' || x.item_id ||

', max(decode(item_id,' || x.item_id ||

', child )) child_' || x.item_id;

end loop;

l_stmt := l_stmt || ' from t group by tr_date order by tr_date';

open p_cursor for l_stmt;

end;

測試環境:

create table t (tr_date date, item_id number,adult number,child number)

insert into t values(to_date('06/01/2004','DD/MM/YYYY') , 9 , 1199 , 839.3)

insert into t values(to_date('06/01/2004','DD/MM/YYYY') , 588 , 1249 , 874.3)

insert into t values(to_date('06/01/2004','DD/MM/YYYY') , 4894 , 2339 , 2339)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有