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