J'ai une table qui a une colonne de valeurs qui peut être rowTypeID = (1,2,3, ou null). Je voudrais écrire une requête qui renvoie n'importe quelle ligne qui n'a pas une valeur de 3 dedans. Dans cet exemple, je veux toutes les lignes NULL avec toutes les lignes 1,2 Je ne veux pas de lignes avec la valeur de 3Retour SQL Server Les lignes qui ne sont pas égales <> à une valeur et NULL
Définir ANSI null ON est actuellement défini pour la base de données.
Je suis curieux de savoir pourquoi je ne peux pas écrire
select * from myTable where myCol <> 3
Cette requête ne renvoie aucune ligne qui ont NULL dans la colonne MyCol
Je dois écrire
select * from my Table where myCol <> 3 or myCol Is NULL
Dois-je toujours inclure l'IS NULL ou puis-je le configurer de sorte qu'une clause where myCol <> 3 retournera les lignes qui ont la valeur Null pour ma colonne
C'est la façon dont fonctionne NULL, toute comparaison avec elle est faux sauf pour IS NULL et IS NOT NULL – kurosch
@kurosch: Stricly suivant votre ligne, NULL = NULL retournerait aussi faux, puisqu'il s'agit d'une comparaison? – Marcel
@Marcel: oui, NULL = NULL est toujours faux, et que la matière est donc NULL <> NULL :-) – kurosch