如何在没有任何筛选的情况下获取所有数据"in"子句



作为报告的一部分,我想从数据库中获取一些值。此外,我在报告UI中包括了过滤,比如:

select * from invoice where id in (92)

因此,我动态地生成postgres语句(这里92是从UI获取并动态分配的值)。但是,如果用户不选择任何选项,我想返回所有数据,在这种情况下为id(无过滤)。那么,在这种情况下,我如何处理"in"子句以返回所有数据而不进行任何筛选呢。

我要求一个可以包含在"in"子句中的通用术语,这样它就可以在不进行筛选的情况下返回所有行。

谢谢!

一种方法使用的逻辑如下:

where (v_id is null) or (id = v_id)

注意:注意in的使用。如果您期望多个值匹配,它可能不会达到您的目的。

最新更新