如何选择列值为null的行?

afz*_*lex 10 sql sql-server postgresql

考虑以下数据库表:

id      |  is_visible
________|_______________
1       |  true
2       |  false
3       |               -- i.e. null
Run Code Online (Sandbox Code Playgroud)

我想选择具有is_visible = null的所有行.我尝试了以下查询:

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
Run Code Online (Sandbox Code Playgroud)

我在postgresql和sql server中尝试过
如何选择具有is_visible = null的行?

cha*_*ryp 21

在Postgres和SQL服务器中,

SELECT * FROM tab WHERE is_visible is null;
Run Code Online (Sandbox Code Playgroud)

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

SELECT * FROM tab WHERE is_visible is not null;
Run Code Online (Sandbox Code Playgroud)