Я был смущен за рассуждениями:
SELECT * FROM table WHERE avalue is null
Возвращает x число строк, где 'avalue' равно null
SELECT * FROM table WHERE avalue <> true
Возвращает строки не, где 'avalue' равно null.
Мое рассуждение (которое кажется неправильным) состоит в том, что как null
является уникальным значением (оно даже не равно null
) означает, что оно должно отображаться в результирующем наборе, поскольку оно не равно true
.
Я думаю, вы могли бы утверждать, что, сказав column <> value
, вы подразумеваете, что столбец имеет значение, поэтому игнорирует значения null
вообще.
Какова причина этого, и это то же самое в других общих SQL DB?
Мое рассуждение (предположение) говорит мне, что это противоречит интуиции, и я хотел узнать почему.