Étant donné cet exemple simple:
DECLARE @aux INT SET @aux = NULL SELECT CASE WHEN @aux = NULL THEN 'null' ELSE 'not null' END AS ETest, CASE WHEN @aux <> NULL THEN 'not null' ELSE 'null' END AS ITest;
Je m'attendais à un résultat: ETEST nul, ITEST NULL, apparemment c'est faux, et j'ai besoin d'un indice pour find où ma logique échoue.
Vous ne pouvez pas utiliser les opérateurs comme <>
et =
pour vérifier null
valeurs null
. Vous devez utiliser IS NULL
ou IS NOT NULL
comme ci-dessous
DECLARE @aux INT SET @aux = NULL SELECT CASE WHEN @aux IS NULL THEN 'null' ELSE 'not null' END AS ETest, CASE WHEN @aux IS NOT NULL THEN 'not null' ELSE 'null' END AS ITest;