postgre where 条件中case when
时间: 2023-06-30 15:22:15 浏览: 111
你可以在 PostgreSQL 的 WHERE 子句中使用 CASE WHEN 表达式来根据特定条件动态生成过滤条件。下面是一个例子:
```
SELECT *
FROM your_table
WHERE
CASE
WHEN condition_1 THEN column_1 = value_1
WHEN condition_2 THEN column_2 = value_2
ELSE column_3 = value_3
END;
```
在上面的查询中,CASE WHEN 表达式用于根据不同的条件生成不同的过滤条件。如果 condition_1 为真,则过滤条件为 column_1 = value_1;如果 condition_2 为真,则过滤条件为 column_2 = value_2;否则,过滤条件为 column_3 = value_3。请注意,CASE WHEN 表达式必须返回一个布尔值,以便用于 WHERE 子句中的过滤条件。
相关问题
postgre case when
引用: CASE WHEN语句在PostgreSQL中用于多条件查询,类似于Java的if/else语句。它的语法结构是:SELECT CASE WHEN 条件 THEN 结果 ELSE 结果 END。在查询的结果中,根据条件判断返回不同的结果。你可以在条件中使用子查询,但是要确保子查询的结果只有一条。
所以,当你在PostgreSQL中使用CASE WHEN语句时,你可以根据需要设置多个条件,并根据条件返回不同的结果。例如,你可以使用以下语句来实现多条件查询:
SELECT CASE WHEN name = '张三' THEN (SELECT name_id FROM user WHERE id = ?)
WHEN name ='李四' THEN (SELECT name_id FROM user WHERE parent_id = ?)
ELSE NULL
END
FROM person
WHERE id = ?
这个语句将根据条件判断返回不同的结果。如果name等于'张三',则返回user表中id为?对应的name_id;如果name等于'李四',则返回user表中parent_id为?对应的name_id;否则返回NULL。在person表中,根据id=?进行过滤。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [【PostgreSQL】CASE WHEN 子查询使用](https://blog.csdn.net/qq_41520636/article/details/121541592)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
postgre case when else
在PostgreSQL中,CASE WHEN语句用于在查询中进行条件判定和返回结果。它的语法形式为:CASE WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
其中,condition1、condition2等是条件表达式,result1、result2等是条件满足时返回的结果,ELSE后面的result是当所有条件都不满足时返回的默认结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [postgresql case when then else end的用法](https://blog.csdn.net/cchulu/article/details/103529542)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [case when在postgresql和mysql中的区别](https://blog.csdn.net/qq_41358151/article/details/127055145)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文