日期:2014-05-17  浏览次数:20949 次

求一SQL语句(ORACLE中)
数据集A
Code Name
 1 A1
 2 A2

数据集B
Code Name
 1 B1
 1 B2
 3 B3

显示结果

Code Name1 Name2
 1 A1 B1
 1 B2
 2 A2  
 3 B3  

其中code是关键字,可以用来连接查询用 Name 只是用来显示

------解决方案--------------------
你的业务逻辑是什么,没看明白
为什么表B中Code为1的第一条和A条一条相等放到后一列,而第二条也不是相等的,就放在下面了,按什么逻辑来组合的?
------解决方案--------------------
第二行的Name1为什么为空呢,根据什么来判断的?
------解决方案--------------------
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;

------解决方案--------------------
感觉有点牵强,为什么rownum能作为关联条件,这个没有逻辑
------解决方案--------------------
.....没有看明白需求,这个要实现什么逻辑呢