sql—其中带有>(更多)或< (更少)的oracle(+)运算符

6mzjoqzu  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(214)

我读过,知道在这种情况下它是如何工作的

select a.id
from a, b
where a.id = b.id(+)

但是这个呢?

select a.id
from a, b
where a.id = b.id2(+) and a.id > b.id(+)

这和

select a.id
from a
left outer join b
on a.id = b.id2 
where a.id > b.id

我该怎么改呢?我需要重写它到Hive,但Hive不支持

on a.id = b.id and a.id > b.id;
rta7y2nd

rta7y2nd1#

虽然不完全相同(存在一些边缘情况),但这可能会满足您的要求:

select a.id
from a left outer join
     b
     on a.id = b.id2 
where (a.id > b.id or b.id2 is null);

然而,你的表情只是在挑起 ida 它使用的是 left join . 因此,这可能已经足够好了:

select a.id
from a ;

诚然,它不会将匹配生成的副本返回给 b 表,但副本通常不可取。

相关问题