次のコードを小さくしようとしています。これは可能ですか?
select a.*
from table1 a
WHERE a."cola1" = 'valuea1'
UNION ALL
select a.*
from tablea1 a
inner join tablea2 b on a."cola2" = b."colb2"
WHERE a."cola1" = 'valuea2'
and b."colb3" = 'valueb3'
実際には、value1 または value2 の table1 からレコードを探していますが、value2 に一致するレコードについては、2 番目のテーブルへの結合を含む 1 つの追加条件を適用したいと考えています。これは UNION 句なしで実行できますか?
スケルトンまたは私がコーディングしようとしているものは以下のとおりです....しかし、それは自然に機能していません.
select a.*
from table1 a
inner join table2 b on a."cola1" = b."COLb1"
WHERE a."cola2" IN ('valuea1','valuea2')
and
CASE
WHEN a."cola2" = 'valuea2' THEN b."colb1" = 'valueb3'
ELSE 1=1
END CASE