NULL et UNKNOWN (Transact-SQL)
S’applique à : SQL Server Base de données Azure SQL Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Point de terminaison d'analyse SQL dans Microsoft Fabric Entrepôt dans Microsoft Fabric Base de données SQL dans Microsoft Fabric
NULL
indique que la valeur est inconnue. Une valeur NULL est différente d’une valeur vide ou égale à zéro. Deux valeurs NULL ne sont pas égales. Les comparaisons entre deux valeurs Null ou entre une valeur Null et toute autre valeur, retournent inconnues, car la valeur de chacune NULL
d’elles est inconnue.
Les valeurs NULL indiquent généralement des données inconnues, non applicables ou à ajouter ultérieurement. Par exemple, l’initial intermédiaire d’un client peut ne pas être connu au moment où le client passe une commande.
Prenez le cas :
Pour tester les valeurs Null dans une requête, utilisez
IS NULL
ouIS NOT NULL
dans laWHERE
clause.Vous pouvez insérer des valeurs null dans une colonne en indiquant
NULL
explicitement dans uneINSERT
ouUPDATE
une instruction, ou en laissant une colonne hors d’uneINSERT
instruction.Les valeurs Null ne peuvent pas être utilisées comme informations requises pour distinguer une ligne d’une table d’une autre ligne d’une table. Par exemple, il s’agit de clés primaires ou d’informations utilisées pour distribuer des lignes, telles que des clés de distribution.
Notes
Lorsque des valeurs Null sont présentes dans les données, les opérateurs logiques et de comparaison peuvent potentiellement retourner un troisième résultat au UNKNOWN
lieu de juste ou justeTRUE
.FALSE
Cette logique tri-valuée nécessaire est source de nombreuses erreurs dans les applications. Opérateurs logiques dans une expression booléenne qui inclut UNKNOWN
le retour UNKNOWN
, sauf si le résultat de l’opérateur ne dépend pas de l’expression UNKNOWN
. Ces tableaux donnent des exemples de ce comportement.
Le tableau suivant montre les résultats de l’application d’un AND
opérateur à deux expressions booléennes où une expression retourne UNKNOWN
.
Expression 1 | Expression 2 | Result |
---|---|---|
TRUE |
UNKNOWN |
UNKNOWN |
UNKNOWN |
UNKNOWN |
UNKNOWN |
FALSE |
UNKNOWN |
FALSE |
Le tableau suivant montre les résultats de l’application d’un OR
opérateur à deux expressions booléennes où une expression retourne UNKNOWN
.
Expression 1 | Expression 2 | Result |
---|---|---|
TRUE |
UNKNOWN |
TRUE |
UNKNOWN |
UNKNOWN |
UNKNOWN |
FALSE |
UNKNOWN |
UNKNOWN |