NULL и UNKNOWN (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в Microsoft Fabric
NULL
указывает, что значение неизвестно. NULL отличается от пустого или нулевого значения. Два значения NULL считаются эквивалентными. Сравнение двух значений NULL или между значением NULL и любым другим значением возвращается неизвестно, так как значение каждого из них NULL
неизвестно.
Значение NULL обычно указывает на то, что данные неизвестны, неприменимы или будут добавлены позже. Например, начальный центр клиента может быть не известен в то время, когда клиент помещает заказ.
Необходимо учесть следующие моменты.
Чтобы проверить значения NULL в запросе, используйте
IS NULL
илиIS NOT NULL
в предложенииWHERE
.Значения NULL можно вставить в столбец, явно указав
NULL
в оператореINSERT
илиUPDATE
операторе или оставив столбец вне инструкцииINSERT
.Значения NULL нельзя использовать в качестве сведений, необходимых для различения одной строки в таблице от другой строки в таблице. Примеры включают первичные ключи или сведения, используемые для распространения строк, таких как ключи распространения.
Замечания
Если значения NULL присутствуют в данных, логические операторы и операторы сравнения могут потенциально возвращать третий результат UNKNOWN
, а не просто TRUE
или FALSE
. Эта тройственная логика является источником многих проблем в приложениях. Логические операторы в логическое выражение, которое включает UNKNOWN
возвращаемое UNKNOWN
значение, если результат оператора не зависит от UNKNOWN
выражения. В таблицах содержатся примеры такого поведения.
В следующей таблице показаны результаты применения AND
оператора к двум логическим выражениям, в которых возвращается UNKNOWN
одно выражение.
Выражение 1 | Expression 2 | Результат |
---|---|---|
TRUE |
UNKNOWN |
UNKNOWN |
UNKNOWN |
UNKNOWN |
UNKNOWN |
FALSE |
UNKNOWN |
FALSE |
В следующей таблице показаны результаты применения OR
оператора к двум логическим выражениям, в которых возвращается UNKNOWN
одно выражение.
Выражение 1 | Expression 2 | Результат |
---|---|---|
TRUE |
UNKNOWN |
TRUE |
UNKNOWN |
UNKNOWN |
UNKNOWN |
FALSE |
UNKNOWN |
UNKNOWN |