Skip to main content
 首页 » 编程设计

postgresql-9.1之Postgresql SQL : How check boolean field with null and True, 假值

2024年09月07日30shanyou

在我的数据库表中,我有一个 bool 列。其中有一些与 will False、True 和 Null 的事务。

这些是我尝试过的案例:

案例:1

select * from table_name where 
boolean_column is null; 

效果很好。给出该列的所有事务都具有空值的结果。

案例:2
select *from table_name where boolean_column = False; 

效果很好。给出该列具有 False 值的所有事务的结果。

案例:3
这是行不通的要求。我希望所有事务都具有 False 和 Null 值。

这些我都试过了。

i) select *from table_name where boolean_column is False or Null;
它只给出 False 的结果,它不显示空记录。

ii) select *from table_name where boolean_column is Null or False;
* 只给出 null 的结果,它不显示带有 False 值的记录。 *

iii) select *from table_name where boolean_column is Null or boolean_column = False;
这只是显示所有交易根本没有应用任何条件。

如何解决这个问题。
任何指导表示赞赏。

提前致谢。

Rgds,
阿尼尔。

请您参考如下方法:

我在 Postgres 的内部工作方面不够专业,不知道为什么您的查询在 WHERE 中具有双重条件。条款不起作用。但是解决这个问题的一种方法是使用 UNION您知道的两个查询中的一个:

SELECT * FROM table_name WHERE boolean_column IS NULL 
UNION 
SELECT * FROM table_name WHERE boolean_column = FALSE 

您也可以尝试使用 COALESCE :
SELECT * FROM table_name WHERE COALESCE(boolean_column, FALSE) = FALSE 

第二个查询将替换所有 NULL值与 FALSE然后与 FALSE 进行比较在 WHERE健康)状况。