Udostępnij za pomocą


NULL i UNKNOWN (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

NULL wskazuje, że wartość jest nieznana. Wartość null różni się od wartości pustej lub zerowej. Żadne dwie wartości null nie są równe. Porównania między dwiema wartościami null lub między wartością null a dowolną inną wartością zwracają wartość nieznaną, ponieważ wartość każdej z nich NULL jest nieznana.

Wartości null zazwyczaj wskazują dane, które są nieznane, nie dotyczy lub do dodania później. Na przykład środkowe początkowe wystąpienie klienta może nie być znane w momencie składania zamówienia przez klienta.

Consider:

  • Aby przetestować wartości null w zapytaniu, użyj klauzuli IS NULL lub IS NOT NULL w klauzuli WHERE .

  • Wartości null można wstawić do kolumny, jawnie stwierdzając NULL w INSERT instrukcji lub UPDATE lub pozostawiając kolumnę poza instrukcją INSERT .

  • Wartości null nie mogą być używane jako informacje wymagane do odróżnienia jednego wiersza w tabeli od innego wiersza w tabeli. Przykłady obejmują klucze podstawowe lub informacje używane do dystrybucji wierszy, takich jak klucze dystrybucji.

Remarks

Jeśli wartości null są obecne w danych, operatory logiczne i porównania mogą potencjalnie zwrócić trzeci wynik UNKNOWN zamiast tylko TRUE lub FALSE. Ta potrzeba logiki trzywartościowej jest źródłem wielu błędów aplikacji. Operatory logiczne w wyrażeniu logicznym, które zawierają UNKNOWN wyrażenie zwraca wartość UNKNOWN, chyba że wynik operatora nie zależy od UNKNOWN wyrażenia. Te tabele zawierają przykłady tego zachowania.

W poniższej tabeli przedstawiono wyniki zastosowania AND operatora do dwóch wyrażeń logicznych, w których jedno wyrażenie zwraca wartość UNKNOWN.

Wyrażenie 1 Wyrażenie 2 Result
TRUE UNKNOWN UNKNOWN
UNKNOWN UNKNOWN UNKNOWN
FALSE UNKNOWN FALSE

W poniższej tabeli przedstawiono wyniki zastosowania OR operatora do dwóch wyrażeń logicznych, w których jedno wyrażenie zwraca wartość UNKNOWN.

Wyrażenie 1 Wyrażenie 2 Result
TRUE UNKNOWN TRUE
UNKNOWN UNKNOWN UNKNOWN
FALSE UNKNOWN UNKNOWN