web-dev-qa-db-ja.com

列値がnullである行を選択する方法は?

次のデータベーステーブルを検討してください。

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

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

私はそれをpostgresqlとsqlサーバーで試しました
is_visible = nullの行を選択する方法は?

13
afzalex

PostgresとSQLサーバーの両方で、

SELECT * FROM tab WHERE is_visible is null;

列の値がnullでない行を選択する場合は、is not null演算子を使用します。

SELECT * FROM tab WHERE is_visible is not null;
21
chaudharyp

nullは不明または利用できないため、SQLサーバーで2つのnull値を比較することはできません。 https://technet.Microsoft.com/en-us/library/aa196339(v = sql.80).aspx

IS NULL演算子を使用:

SELECT * FROM tab WHERE is_visible IS NULL;  -- only field having null value
SELECT * FROM tab WHERE is_visible IS NOT NULL;    -- fields having not null values
2
Sundar Singh