0

我有下表 TableA 和一些数据

ColA  ColB
0      5
0      6

我有另一个表,TableB,有一些数据

ColC  ColD   ColE
5      10     5
5      15     10
6      20     10

ColC 是 ColB 的外键。对于 TableA 中的每一行,我需要返回 ColA、ColB 和 ColD。在 TableB 中选择的行取决于通过参数设置的 ColE 的值。

例如:如果我的参数设置为 5,我应该得到两行,如下所示:

ColA  ColB  ColD
0      5     10
0      6     null

但是,如果我的参数不是 5 并且 TableB 中不存在任何行,则它会使用参数值 5 并从 ColB 检索值(如果存在行)。

我尝试了几件事,但似乎无法提出解决方案。谢谢您的帮助!

4

2 回答 2

2

尝试这个:

select ColA, ColB, ColD
  from TableA a
  left outer join TableB b on (a.ColB = b.ColC and b.ColE = 5)
于 2012-05-10T17:36:44.143 回答
0
select a.ColA, a.ColB, COALESCE(b.ColD, b5.ColD)
  from TableA a
  left outer join TableB b 
  on a.ColB = b.ColC 
  and b.ColE = 6
  left outer join TableB b5 
  on a.ColB = b5.ColC 
  and b5.ColE = 5
于 2012-05-10T21:12:14.877 回答