Condividi tramite


NULL e UNKNOWN (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di analisi (PDW)Endpoint 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