NULL e UNKNOWN (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
NULL
indica che il valore è sconosciuto. Un valore Null è diverso da un valore zero o vuoto. Non esistono due valori Null uguali. I confronti tra due valori Null o tra un valore Null e qualsiasi altro valore restituiscono sconosciuti perché il valore di ognuno NULL
è sconosciuto.
In genere, i valori Null indicano dati sconosciuti, non applicabili o da aggiungere in seguito. Ad esempio, l'iniziale centrale di un cliente potrebbe non essere nota al momento in cui il cliente effettua un ordine.
Tenere in considerazione:
Per verificare i valori Null in una query, usare
IS NULL
oIS NOT NULL
nellaWHERE
clausola .È possibile inserire valori Null in una colonna specificando
NULL
in modo esplicito in un'istruzioneINSERT
oUPDATE
oppure lasciando una colonna da un'istruzioneINSERT
.I valori Null non possono essere usati come informazioni necessarie per distinguere una riga in una tabella da un'altra riga in una tabella. Ad esempio, le chiavi primarie o le informazioni usate per distribuire righe, ad esempio le chiavi di distribuzione.
Osservazioni:
Quando i valori Null sono presenti nei dati, gli operatori logici e di confronto possono potenzialmente restituire un terzo risultato anziché UNKNOWN
solo TRUE
o FALSE
. Questa logica a tre valori è necessaria, ma causa numerosi errori nelle applicazioni. Operatori logici in un'espressione booleana che include UNKNOWN
restituito UNKNOWN
, a meno che il risultato dell'operatore non dipende dall'espressione UNKNOWN
. Queste tabelle offrono esempi di questo comportamento.
Nella tabella seguente vengono illustrati i risultati dell'applicazione di un AND
operatore a due espressioni booleane in cui un'espressione restituisce UNKNOWN
.
Espressione 1 | Expression 2 | Risultato |
---|---|---|
TRUE |
UNKNOWN |
UNKNOWN |
UNKNOWN |
UNKNOWN |
UNKNOWN |
FALSE |
UNKNOWN |
FALSE |
Nella tabella seguente vengono illustrati i risultati dell'applicazione di un OR
operatore a due espressioni booleane in cui un'espressione restituisce UNKNOWN
.
Espressione 1 | Expression 2 | Risultato |
---|---|---|
TRUE |
UNKNOWN |
TRUE |
UNKNOWN |
UNKNOWN |
UNKNOWN |
FALSE |
UNKNOWN |
UNKNOWN |