2016-04-08 21 views
4

PostgreSQL SQLクエリで!=を使用してSQL結果をフィルタリングする方法はありますか?例Postgresで等しくないnull null

SELECT * FROM "A" WHERE "B" != 'C' 

作業中です。しかし、それはまた、すべてのレコードをフィルタリングしています"B" IS NULL。クエリを変更したとき:

SELECT * FROM "A" WHERE "B" != 'C' OR "B" IS NULL 

私は正しい結果を得ました。 O_o。いつでも、私は!=を使用する必要がある場合は、OR "field" IS NULLもチェックする必要がありますか?本当に?

それはSequelizeで不快だ:{ B: { $or: [null, { $not: 'C' }] } }、代わりに:{ B: { $not: 'C' } } :(

答えて

11

あなたがあなたの代わりに<>

SELECT * 
FROM "A" 
WHERE "B" is distinct from 'C' 

http://www.postgresql.org/docs/current/static/functions-comparison.html


の "ヌル安全" 演算子is distinct fromを使用することができます引用符で囲まれた識別子も避けるべきです。彼らはそれに価値がある、それは価値がある

関連する問題