NULL e UNKNOWN (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsEndpoint di analisi SQL in Microsoft FabricMagazzino in Microsoft FabricDatabase SQL 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.

Consider:

  • 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.

Remarks

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 Espressione 2 Result
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 Espressione 2 Result
TRUE UNKNOWN TRUE
UNKNOWN UNKNOWN UNKNOWN
FALSE UNKNOWN UNKNOWN