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 o IS NOT NULL nella WHERE clausola .

  • È possibile inserire valori Null in una colonna specificando NULL in modo esplicito in un'istruzione INSERT o UPDATE oppure lasciando una colonna da un'istruzione INSERT .

  • 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