我正在尝试使以下代码更小。这可能吗?
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'
实际上,我正在从 table1 中查找 value1 或 value2 的记录,但是对于匹配 value2 的记录,我想应用 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