Maison >base de données >tutoriel mysql >Pourquoi NULL = NULL renvoie-t-il False dans SQL Server ?

Pourquoi NULL = NULL renvoie-t-il False dans SQL Server ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-20 23:18:10453parcourir

Why Does NULL = NULL Return False in SQL Server?

Comprendre pourquoi NULL = NULL est faux dans SQL Server

Dans SQL Server, une condition de clause WHERE telle que nullParam = NULL est évaluée comme fausse. Cela peut sembler contre-intuitif, étant donné que NULL signifie souvent des données manquantes. La clé est de comprendre l'interprétation de NULL par SQL Server.

NULL ne représente pas simplement des données manquantes ; il représente une valeur inconnue ou inexistante. Par conséquent, comparer deux valeurs NULL est intrinsèquement indéterminé. Nous ne pouvons pas dire avec certitude si deux inconnues sont égales ou inégales. Cette incertitude se traduit par une fausse évaluation.

Cela est conforme à la norme ANSI SQL-92. Par défaut, SQL Server fonctionne avec ANSI_NULLS ON, appliquant ce comportement. Cependant, la définition de ANSI_NULLS OFF change le résultat de la comparaison en vrai.

Considérez cet exemple :

<code class="language-sql">SET ANSI_NULLS OFF;

IF NULL = NULL
    PRINT 'true';
ELSE
    PRINT 'false';

SET ANSI_NULLS ON;

IF NULL = NULL
    PRINT 'true';
ELSE
    PRINT 'false';</code>

Avec ANSI_NULLS OFF, le résultat est « vrai ». Avec ANSI_NULLS ON (valeur par défaut), le résultat est « faux », démontrant comment ce paramètre contrôle la gestion par SQL Server des comparaisons NULL. L'utilisation de IS NULL est l'approche correcte pour vérifier les valeurs nulles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn