问题:
13.表结构如下:
币种 金额(本币) 金额(外币)
001 100 500
001 200 600
013 300 700
014 400 800
希望显示的结果:
币种 金额
001 100
001 200
013 700
001 300
014 800
001 400
注:001代表本币,其他的都是外币,检索结果中,外币币种都生成2条记录,一条是外币信息一条是本币信息
可以使用任何方法来实现(包括建临时表等)
答案:
13.表结构如下:
币种 金额(本币) 金额(外币)
001 100 500
001 200 600
013 300 700
014 400 800
希望显示的结果:
币种 金额
001 100
001 200
013 700
001 300
014 800
001 400
注:001代表本币,其他的都是外币,检索结果中,外币币种都生成2条记录,一条是外币信息一条是本币信息
可以使用任何方法来实现(包括建临时表等)
答案:
drop table t;
create table t(c varchar2(3),l number, f number);
insert into t values('001', 100 ,500);
insert into t values('001', 200 ,600);
insert into t values('013', 300 ,700);
insert into t values('014', 400 ,800);
commit;
select decode(lv, 1, c, '001'), decode(c, '001', l, decode(lv, 1, l, f))
from t, (select level lv from dual connect by level <= 2)
where (t.c = '001' and lv = 1 or t.c <> '001')
order by t.c;
DECODE(LV,1,C,'001') DECODE(C,'001',L,DECODE(LV,1,L
-------------------- ------------------------------
001 100
001 200
013 300
001 700
014 400
001 800
drop table t;