EST NULL vs = NULL dans la clause where + SQL Server
Comment vérifier une valeur IS NULL [or] = @param
(où @param est null)
Ex:
Select column1 from Table1
where column2 IS NULL => works fine
Si je veux remplacer la comparaison de la valeur (NULL) avec @param. Comment cela peut-il être fait
Select column1 from Table1
where column2 = @param => this works fine until @param got some value in it and if is null never finds a record.
Comment cela peut-il atteindre?
Vous devez vous connecter pour publier un commentaire.
Je réalise que c'est une vieille question, mais j'ai eu le même, et est venu avec un autre (le plus court) réponse. Remarque: cela ne fonctionne que pour MS SQL Server qui prend en charge la fonction ISNULL(expr,de remplacement).
Cela suppose également de vous traiter comme NULLE et les cordes à vide de la même manière.
Il n'y a pas de "one size fits all" requête pour cette approche, il y a de subtiles de la performance des implications dans la manière de procéder. Si vous voulez aller de l' au-delà de juste de faire la requête en retour la réponse adéquate, peu importe comment lent c'est, regardez cet article sur Dynamique des Conditions de Recherche dans T-SQLby Erland Sommarskog
voici un lien pour la partie sur le x = @x OU x EST NULLE
COLUMN = @PARAM
ne sera jamais vrai si@PARAM
est nulle, de sorte que la deuxième condition (@PARAM IS NOT NULL
) est redondant.column2 IS NOT NULL
vérification est inutile, car ce serait couverte parcolumn2 = @param
... ce qui rend cette réponse est moins concis version de la accepté de répondre à partir de l'année dernière.