То, когда 'x, ЯВЛЯЕТСЯ NOT NULL' не то же как 'НЕ (x, ЯВЛЯЕТСЯ ПУСТЫМ)'

Поскольку, что x

Выражение x IS NOT NULL не равно NOT(x IS NULL), как имеет место в 2VL

(кавычка из этого ответа, который заключает Fabian Pascal Practical Issues в кавычки в управлении базой данных - Ссылке для Думающего Практика - около конца того ответа),

Мое предположение когда x IS NULL является ПУСТЫМ, но я не могу предположить, когда это было бы (т.е. Я не проверил стандарт SQL). Это предположение было неправильным.

11
задан Community 23 May 2017 в 11:58
поделиться

2 ответа

Из того, что я прочитал, Фабиан Паскаль имеет в виду не скалярное значение по сравнению с Null, а редко реализуемый тип ROW. В стандарте идея заключалась в том, что вы могли сравнить таблицу (строк), используя IS NULL , чтобы определить, все ли значения установлены на значение NULL. Таким образом, X IS NULL будет означать, что все значения были установлены на значение NULL, X IS NOT NULL будет означать, что никакие значения не были установлены на значение NULL, а NOT (X IS NULL) означало бы, что не все значения были установлены в значение NULL или, другими словами, существовало по крайней мере одно значение, не установленное в NULL. Конечно, здесь я слегка наступаю на плечи гигантов, но именно так я интерпретирую его заявление.

15
ответ дан 3 December 2019 в 04:12
поделиться

x IS NULL никогда не будет NULL, поэтому они одинаковы для всех x

Таблица истинности:

+--------+-------------+---------+--------------+
|   x    |x IS NOT NULL|x IS NULL|NOT(x IS NULL)|
+--------+-------------+---------+--------------+
|NULL    |    FALSE    |  TRUE   |    FALSE     |
|NOT NULL|    TRUE     |  FALSE  |    TRUE      |
+--------+-------------+---------+--------------+

Обратите внимание, что столбцы два и четыре одинаковы для всех возможных значений x (либо NULL, либо NOT NULL)

.
10
ответ дан 3 December 2019 в 04:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: