2016-08-01 2 views
0

При сравнении булевых значений в PostgreSQL мы используем оператор сравнения =. Это все хорошо, но когда я хочу проверить соответствие значений NULL, что я должен использовать?PostgreSQL - сравнение логических значений, которые могут быть нулевыми

Я использовал IS NOT DISTINCT FROM при сравнении целых чисел, которые должны совпадать, если оба они имеют значение NULL, но является ли это правильным способом при работе с булевыми значениями?

+0

'является [ нет] null'? – freakish

+0

'отлично от' также работает с булевыми:' не отличается от истины' –

ответ

0

Использовать is null Статья. Как это:

select * from my_table where my_booleae_field is null 
+0

Это был не вопрос. Мне не нужно получать данные WHERE smth равно null. Мне нужно сравнить аргумент с значением db, где они могут быть нулевыми, но могут также быть «правильными» булевыми значениями. – KasparTr

1

Я использовал НЕ ОТЛИЧИЕ ОТ при сравнении целых чисел, которые должны соответствовать, если оба NULL, но это corract путь при работе с логическими значениями?

Я не вижу причин, почему нет. :)

x IS NOT DISTINCT FROM y в основном стенография для (x = y) OR (x IS NULL AND y IS NULL)

0

Попробуйте использовать coalesce

как:

where coalesce(your_field, true) = true 

Тогда нулевые значения и логическое верно будет передавать оператор

Смежные вопросы