Стандартный логический оператор SQL IS против оператора равенства (=)

На странице Википедии, посвященной SQL, есть несколько таблиц истинности о булевой логике в SQL. [1] Страница Википедии, кажется, является источником стандарта SQL: 2003.

Таблица истинности для оператора равенства (=) отличается от таблицы истинности для оператора IS из проекта SQL:2003.

Кроме того, в статье Википедии отмечается, что «IS NULL» () является особым случаем.

В SQL:2003 кажется, что есть оператор "IS", который является обычным оператором, таким как AND, NOT и OR. Однако все еще существует.

Почему присутствует , если IS является обычным логическим оператором? Это нужно для того, чтобы вы могли использовать конструкцию «IS NULL» с небулевыми значениями без приведения типов? Не рекомендуется использовать «= NULL»?

Стандарт SQL:2011 работает по-другому?

[1]: Википедия по SQL

[2]: SQL:2011 draftСтраница PDF 335

[3]: SQL:2003 draftPDF страница 397

19
задан Deduplicator 24 February 2015 в 02:03
поделиться