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 ou IS NOT NULL dans la WHERE clause.

  • Vous pouvez insérer des valeurs null dans une colonne en indiquant NULL explicitement dans une INSERT ou UPDATE une instruction, ou en laissant une colonne hors d’une INSERT 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