WHERE中的PostgreSQL动态条件

时间:2020-01-27 07:28:58

标签: sql postgresql

我们有一个表:类别

|---------------------|------------------|
|     category_id     |        name      |
|---------------------|------------------|
|          1          |     'text 1'     |
|---------------------|------------------|
|          2          |     'text 2'     |
|---------------------|------------------|

我们需要这样做:

伪SQL代码

SELECT * FROM categories WHERE case when $1 != 0 then category_id = $1 end; 

$1-输入参数的值

是否可以通过一个SQL查询在PostgreSQL中做到这一点?

1 个答案:

答案 0 :(得分:1)

我猜你想要:

UPDATE

如果输入参数为SELECT c.* FROM categories c WHERE $1 = 0 OR c.category_id = $1; ,则返回所有行,否则返回匹配的行。