PostgreSQL的In子句中的比较

cyvaqqii  于 2022-10-15  发布在  PostgreSQL
关注(0)|答案(2)|浏览(208)

是否可以在PostgreSQL的In子句中添加条件
例如

select ... where (t1.subject,t2.weight) in ((1,2),(2,3))

我想检查主题是否为1,但权重是否可以大于等于2,而不只是2,依此类推。因此,从逻辑上讲,该条件看起来有点像

select ... where (t1.subject,t2.weight) in ((1,>2),(2,>3))
lnxxn5zx

lnxxn5zx1#

不,这是不可能的。你需要写下

…
WHERE t1.subject = 1 AND t2.weight > 2
   OR t1.subject = 2 AND t2.weight > 3;
alen0pnh

alen0pnh2#

您可以使用子查询选择对象的值。SIMPLE只选择权重大于>=2查询主题。
选择...其中(t1.SUBJECT,t2.weight)in(从...中选择主题)其中权重>=2,从...中选择主题其中权重>=3);

相关问题