如何在PostgreSQL中将结果分组为布尔值

时间:2017-02-23 08:38:25

标签: sql postgresql

我有一个返回

的查询
Select bool_val
from .....

该查询返回许多行,其值为TrueFalse或根本没有行。

我希望查询始终返回TrueFalse,条件是如果有一个为真,则结果为True,否则为False

例如: 查询结果:

False
False
True
False

应该返回True

查询结果:

False
False

应该返回False

查询结果:

no rows

由于查询为空,应返回False

如果没有IFs使用PostgreSQL的查询,我怎么能这样做?

1 个答案:

答案 0 :(得分:4)

您可以使用布尔聚合:

select bool_or(bool_val)
from the_table;

要在表格中没有行时获得false,请使用coalesce()(感谢Elad)

select coalesce(bool_or(bool_val), false)
from the_table;

另一个 - 可能更快 - 选项是:

select exists (select 1 from the_table where bool_val)