我有一个简单的场景,但在苦苦挣扎:
假设我有以下 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;
我希望我的查询返回“假”值,因为此查询不存在任何记录。
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;
我尝试了左右外连接,但徒劳无功。