1. ホーム
  2. sql

[解決済み] NULLまたはIS NULLを含むIN節

2022-10-20 07:14:07

質問

Postgresはデータベースです。

IN句にNULL値を使用することはできますか? の例です。

SELECT *
FROM tbl_name
WHERE id_field IN ('value1', 'value2', 'value3', NULL)

この4つの値に限定したい。

私は上記のステートメントを試してみましたが、それは動作しません。まあ、それは実行されますが、NULL id_fieldsを持つレコードを追加しません。

OR条件を追加しようとしましたが、これはクエリを実行するだけで、終わりが見えません。

SELECT *
FROM tbl_name
WHERE other_condition = bar
AND another_condition = foo
AND id_field IN ('value1', 'value2', 'value3')
OR id_field IS NULL

何か提案はありますか?

どのように解決するのですか?

<ブロッククオート

1. in と同じように解析されます。 field=val1 or field=val2 or field=val3 . そこにNULLを入れると、以下のようになります。 field=null となり、うまくいきません。

( コメント マークB )

私ならこうする

SELECT *
FROM tbl_name
WHERE 
(id_field IN ('value1', 'value2', 'value3') OR id_field IS NULL)