17,382
社区成员




--搞不懂你是什么逻辑,我只能蒙了,不过结果是和你的一致的,呵呵
with A(Code,Name) as(
select 1,'A1' from dual
union all select 2,'A2' from dual
),
B(Code,Name) as(
select 1,'B1' from dual
union all select 1,'B2' from dual
union all select 3,'B3' from dual
)
select nvl(A1.Code,B1.Code) Code,
A1.Name Name1,
B1.Name Name2
from
(select rownum rn,Code,Name from A) A1
full join
(select rownum rn,Code,Name from B) B1
on A1.Code=B1.Code and A1.rn=B1.rn
order by Code;
/*
CODE NAME NAME
---------- ---- ----
1 A1 B1
1 B2
2 A2
3 B3
已选择4行。
*/