Bien le bonjour !
Et bien voilà, nous venons de tomber sur un résultat un peu étrange en parlant de syntaxe d'un case.. je m'explique. J'ai toujours mis ma syntaxe comme ceci :
Et jusqu'ici, je n'avais jamais eu de problème. Mais on vient de me poser un erreur assez flagrante sur une même syntaxe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT CASE maValeur WHEN 'x' THEN 0 ELSE 1 END
et là, le retour est à 0, même si ma valeur est null
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT CASE maValeur WHEN NULL THEN 0 ELSE 1 END
Alors, vous allez me dire "il existe la fonction ISNULL(maValeur, 0)" et je vous répondrais oui, mais la question était de devoir mettre 0 ou 1 quelque soit la valeur de "maValeur" ce qui fait que le ISNULL() n'est pas approprié.
Alors si je fais
dans ce cas, le retour est bien 1 en cas de valeur null.. et c'est là ou ça tilt dans mon cerveau, parce que je ne comprend pas pourquoi l'une est interprétée et donne le bon résultat, mais pas l'autre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT CASE WHEN maValeur IS NULL THEN 1 ELSE 0 ENDpourquoi dans le premier cas, tout fonctionne, mais pas dans le 2ème...
Je comptais sur vos lumières pour m'éclairer, parce que ça tilt sévère
Cordialement.
Partager