私は単純なシナリオを持っていますが、苦労しています:
次の 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;
私は左右の外部結合を試みましたが無駄でした。