2013-07-12 58 views
1

我想选择表中的所有内容,其中id列不是特定值。但是,是否有可能将该特定值设为可选项,并在此情况下返回所有结果。pgSQL:返回所有结果,但可能不是一个结果

看起来好像case可能是我想要的,但它不适合我。我已经试过

WHERE id != '' 

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

仅仅是不正确的语法。我怎样才能做这个查询?非常感谢。

+0

在什么情况下你想显示'id'的特定值? – 2013-07-12 16:51:18

回答

1

试着这么做:

WHERE (id != v_id OR v_id IS NULL) 

这将返回所有行id != v_id如果v_id不为空

或者返回所有行如果v_id是空

1

当你想要的任何标识,然后通过$id为空或为空。否则传递真实的ID。这样做的空方式:

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

使用空:

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