pgSQL:返回所有结果,但可能不是一个结果

时间:2013-07-12 16:40:38

标签: sql postgresql

我想在表格中选择id列不是特定值的所有内容。但是,是否可以将该特定值设为可选值,并在这种情况下返回所有结果。

似乎case可能是我想要的,但它对我不起作用。我尝试了什么

WHERE id != '' 

WHERE id (SELECT CASE WHEN $id IS NULL THEN '')
                            ^^ $id could be, say, 10 or NULL

只是错误的语法。我该如何进行此查询?非常感谢。

2 个答案:

答案 0 :(得分:1)

尝试类似:

WHERE (id != v_id OR v_id IS NULL)

如果id != v_id不为空

,它将返回v_id的所有行

如果v_id为空

,则返回所有行

答案 1 :(得分:1)

如果您需要任何ID,则将$id传递为空或null。否则传递真实的身份证。这样做是空的:

where (id = $id or $id = '')

使用null:

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