表M数据如下:
SEQ_NO | TYPE_NO | MONEY |
A | 1 | 10 |
A | 2 | 20 |
B | 5 | 30 |
表N数据如下:
TYPE_NO |
1 |
2 |
3 |
4 |
5 |
M表和N表通过type_no关联,想得到以下结果:
SEQ_NO | TYPE_NO | MONEY |
A | 1 | 10 |
A | 2 | 20 |
A | 3 | 0 |
A | 4 | 0 |
A | 5 | 0 |
B | 1 | 0 |
B | 2 | 0 |
B | 3 | 0 |
B | 4 | 0 |
B | 5 | 30 |
select nvl(t1.seqno, 'A'), t2.typeno, nvl(t1.money, 0)
from (select * from t1 where t1.seqno = 'A') t1
full join T2
on t1.typeno = t2.typeno union
select nvl(t1.seqno, 'B'), t2.typeno, nvl(t1.money, 0)
from (select * from t1 where t1.seqno = 'B') t1
full join T2
on t1.typeno = t2.typeno;
基本算是能实现结果,不知是否满足