"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi «null! = Null» ne revient-il pas toujours vrai dans SQL?

Pourquoi «null! = Null» ne revient-il pas toujours vrai dans SQL?

Publié le 2025-03-24
Parcourir:264

Why Doesn't `NULL != NULL` Always Return True in SQL?

Pourquoi l'inégalité avec Null ne renvoie pas toujours True

Lorsque vous comparez les valeurs nuls avec l'opérateur d'inégalité ("! ="), Il est souvent assumé que le résultat devrait être vrai, car null n'est pas égal à lui-même. Cependant, dans certains contextes comme SQL, cette hypothèse n'est pas valide.

SQL Logic Ternary

Dans SQL, NULL représente une valeur inconnue. Cela introduit un troisième état logique au-delà du vrai et du faux, connu sous le nom de «inconnu». En conséquence, les comparaisons d'inégalité avec NULL suivent la logique ternaire, où le résultat peut être l'une des trois options:

  • true
  • false
  • inconnu

Exemple:

Instruction:

WHERE (A  B)

Si a et b sont tous les deux nuls, l'expression ci-dessus renvoie "inconnu" car il n'y a aucun moyen de déterminer s'ils sont vraiment inégaux ou s'ils sont tous les deux inconnus. Une véritable vérification des inégalités avec NULL peut ne pas toujours revenir vrai. Pour garantir des résultats précis, la vérification explicite des conditions nulles en utilisant "est nul" et "n'est pas nul" est nécessaire.

Par exemple, l'expression suivante gère correctement les comparaisons d'inégalité avec Null: où ((a b) ou (a n'est pas nul et b est nul Incorporant ces vérifications explicites, la base de données peut déterminer le résultat logique correct (vrai, faux ou inconnu) pour tous les cas possibles impliquant des valeurs nuls.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3