在我的数据库表中,我有一个 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
健康)状况。