考虑以下数据库表:

id      |  is_visible
________|_______________
1       |  true
2       |  false
3       |               -- i.e. null

我想 Select 所有具有is_visible=null的行.我try 了以下问题:

SELECT * FROM tab WHERE is_visible = null;     -- 0 results
SELECT * FROM tab WHERE is_visible <> true;    -- only fields with false value
SELECT * FROM tab WHERE is_visible <> false;   -- only fields with true

我在postgresql和sql server中试过了

推荐答案

在Postgres和SQL server中,

SELECT * FROM tab WHERE is_visible is null;

如果要 Select 列值不为空的行,请使用is not null运算符:

SELECT * FROM tab WHERE is_visible is not null;

Postgresql相关问答推荐

如何接受jsonb路径中的任何密钥?

DBT-DBT依赖于未找到的源

PostgreSQL 中的 Datum 数据类型是什么以及它的用途是什么?

从单选插入到多个表

Postgres 查询计划器不会使用更便宜的复合索引

postgresql中的外键可以被触发器违反

如何从 postgresql Select 查询中的 age() 函数中仅获取年份

表或列名不能以数字开头?

postgresql 在查询中插入空值

如何将两个 PostgreSQL 列聚合到一个用括号分隔的数组

从 PostgreSQL 中的字段中提取数字

如何防止用户看到其他数据库和其他数据库中的表?

Rails ActiveRecord - 如何获取两个日期之间的记录

PostgreSQL 表变量

postgres - 比较两个数组

带有偏移限制的 Select 查询太慢了

FOR EACH STATEMENT 触发器示例

学习 PL/pgSQL 的好资源?

判断 PostgreSQL 中的角色是否设置了密码

Ecto Postgres 安装错误密码验证失败