Bonjour

Au cours de mes travaux sur une procédure stockée SQL, j'ai lu les deux lignes suivantes

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
SET @V = ISNULL(NULLIF(@V, 0), 1)
 
SET @V = case when @V < 0 then 1 else @V end
(alias B1)

Je me suis donc posé la question suivante : est-il possible de les "regrouper" en une seule instruction set ?

J'ai essayé

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
SET @V = case when ISNULL(NULLIF(@V, 0), 1) < 0 then 1 else @V end
(alias B2)

Mais ce n'est pas équivalent à B1.

En effet, avec B2, les 0 reste à 0 et les Null sont remplacés par 0.

Alors qu'avec B1, les Null et 0 sont remplacés par 1.

Toute aide est la bienvenue.

Cordialement