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

sql 问题
有两个表

T1表 T2表  
A,主键 A,主键  
B, A1,主键  
C, A2,主键  
D, A3,
E, B,  
F C,  
... D,  
E,  
F
  ... 

求一个SQl, 根据 A,A1,A2 传入的变量值 在T2表中查 A3 是否为 Y,
如果为Y 查 T2表的B,C,D,E,F...
否则查 T1表的B,C,D,E,F...

------解决方案--------------------
若有关联可参考
select T1.A,A1,A2,A3,
DECODE(A3,Y,T1.B,T2.B) B,
DECODE(A3,Y,T1.B,T2.B) C,
.....
from T2, T1
where T2.A =T1.A(+)
AND T2.A1='1'
AND T2.A2='2'
------解决方案--------------------
引用4楼,当有所修改

SELECT T2.A,T2.A1,T2.A2,
DECODE(T2.A3,'Y',T2.B,T1.B) B,
DECODE(T2.A3,'Y',T2.C,T1.C) C
FROM T2,T1
WHERE T2.A = T1.A(+);