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に設定されている場合、次のように2つの行を取得する必要があります。

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 に答える