0

私は単純なシナリオを持っていますが、苦労しています:

次の 2 つのテーブルがあるとします。

tableA
Acol1 Acol2 Acol3       
1       2     3 

tableB
Bcol1 Bcol2 Bcol3   
1       2    true

クエリ:

select tabB.Bcol3 from tableA tabA, tableB tabB
where
tabA.Acol1 = tabB.Bcol1
and tabB.Bcol2 = 1
and tabA.Acol1 = 1;

このクエリにはレコードが存在しないため、クエリが「false」値を返すようにします。

PS: 実際には、このシナリオは約 15 の結合と複数の列を含むより大きなクエリの一部であるため、集計関数を使用することはできません。

したがって、次の解決策は文脈から外れています。

   select decode(max(tabB.Bcol3), null, 'FALSE', 'TRUE') from tableA tabA, tableB tabB
    where
    tabA.Acol1 = tabB.Bcol1
    and tabB.Bcol2 = 1
    and tabA.Acol1 = 1;

私は左右の外部結合を試みましたが無駄でした。

4

1 に答える 1