Я недавно начал изучать оракул и sql. Во время обучения я встретил пару запросов, которые мой друг спросил в интервью.SELECT * FROM Employees WHERE NULL NULL; SELECT * FROM Employees WHERE NULL = NULL;
SELECT *
FROM Employees
WHERE NULL IS NULL;
Этот запрос дает все строки в таблице Employees. Как я понял, Oracle ищет данные в столбцах, так что NULL обрабатывается здесь как имя столбца? Правильно ли я говорю, что Oracle ищет данные в столбцах? Почему Oracle дает все строки в этом запросе? В разделе WHERE не должно быть, чтобы левая сторона условия была COLUMN NAME? Не должно ли это ошибка?
SELECT *
FROM Employees
WHERE NULL = NULL;
ОТДЫХ.
Ну, я понимаю, что я не могу сравнивать значение NULL с использованием операторов, кроме IS NULL и IS NOT NULL. Но почему он должен давать результат, а не ошибку. Может ли кто-нибудь объяснить мне это. Охватывает ли Oracle NULL как столбца, так и пустые ячейки?
'NULL = NULL' синтаксически действителен, поэтому он не должен вызывать ошибки. –