NULL e UNKNOWN (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)SQL analytics endpoint in Microsoft FabricWarehouse 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 UNKNOWN in quanto ogni valore NULL è sconosciuto.

In genere, i valori Null indicano dati sconosciuti, non applicabili o da aggiungere in seguito. È possibile, ad esempio, che l'iniziale del secondo nome di un cliente non sia nota nel momento in cui il cliente emette un ordine.

Per i valori Null, tenere presente quanto segue:

  • Per verificare i valori Null in una query, utilizzare IS NULL o IS NOT NULL nella clausola WHERE.

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

  • Non è possibile usare i valori Null come informazioni necessarie per distinguere una riga in una tabella da un'altra riga in una tabella, ad esempio le chiavi primarie, o per le informazioni usate per distribuire le righe, ad esempio le chiavi di distribuzione.

Se i dati includono valori Null, gli operatori logici e di confronto possono restituire potenzialmente un terzo valore, ovvero UNKNOWN, anziché TRUE o FALSE. Questa logica a tre valori è necessaria, ma causa numerosi errori nelle applicazioni. Gli operatori logici in un'espressione booleana che include valori UNKNOWN restituiranno UNKNOWN a meno che il risultato dell'operatore non dipenda dall'espressione UNKNOWN. Queste tabelle offrono esempi di questo comportamento.

La tabella seguente illustra il risultato che si ottiene quando si applica l'operatore AND a due espressioni booleane in cui un'espressione restituisce UNKNOWN.

Espressione 1 Expression 2 Risultato
TRUE SCONOSCIUTO SCONOSCIUTO
SCONOSCIUTO SCONOSCIUTO SCONOSCIUTO
FALSE SCONOSCIUTO FALSE

La tabella seguente illustra il risultato che si ottiene quando si applica l'operatore OR a due espressioni booleane in cui un'espressione restituisce UNKNOWN.

Espressione 1 Expression 2 Risultato
TRUE SCONOSCIUTO TRUE
SCONOSCIUTO SCONOSCIUTO SCONOSCIUTO
FALSE SCONOSCIUTO SCONOSCIUTO

Vedi anche

AND (Transact-SQL)
OR (Transact-SQL)
NOT (Transact-SQL)
IS NULL (Transact-SQL)