我有一个查询返回
Select bool_val
from .....
Run Code Online (Sandbox Code Playgroud)
该查询返回的值多行True或False在所有或没有行。
我希望查询始终返回True或者False根据病情,如果有一个真实的结果True,否则False。
例如:查询结果:
False
False
True
False
Run Code Online (Sandbox Code Playgroud)
应该退货True。
查询结果:
False
False
Run Code Online (Sandbox Code Playgroud)
应该退货False。
查询结果:
no rows
Run Code Online (Sandbox Code Playgroud)
False由于查询为空,应返回。
如何在不IFs使用PostgreSQL的情况下执行查询?
您可以使用布尔型聚合:
select bool_or(bool_val)
from the_table;
Run Code Online (Sandbox Code Playgroud)
要false在表不包含任何行时也获得a ,请使用coalesce()(感谢Elad)
select coalesce(bool_or(bool_val), false)
from the_table;
Run Code Online (Sandbox Code Playgroud)
另一个可能更快的选项是:
select exists (select 1 from the_table where bool_val)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1504 次 |
| 最近记录: |