Стандартный логический оператор SQL оператор IS vs. equals (=)
На странице Википедии для SQL есть несколько таблиц истинности о булевой логике в SQL. [1] Похоже, что страница Википедии является источником стандарта SQL: 2003.
Таблица истинности для оператора равенства (=) отличается от оператора IS из черновика SQL: 2003.
Также в статье в Википедии отмечается, что «IS NULL» (<предикат null>) является особым случаем.
В SQL: 2003 кажется, что есть оператор IS, который является обычным оператором, подобным AND, NOT и OR. Однако <нулевой предикат> все еще там.
Почему существует <нулевой предикат>, когда IS является обычным логическим оператором? Чтобы убедиться, что вы можете использовать конструкцию «IS NULL» с небулевыми значениями без приведения типов? Не рекомендуется использовать "= NULL"?
Стандарт SQL: 2011 работает по-другому?
[1]:Википедия по SQL
[2]:SQL: черновик 2011 года PDF страница 335
[3]:Черновик SQL: 2003 PDF страница 397