La syntaxe de l'expression CASE
simple se trouve dans la documentation Microsoft comme suit;
CASE input_expression WHEN when_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END
Est-il possible de faire ce qui suit sans réécrire la requête pour l' input_expression
la deuxième fois?
CASE input_expression WHEN when_expression THEN result_expression [ ...n ] [ ELSE **input_expression** ] END
Merci!
Eds
Si input_expression
ne peut pas être NULL
et qu'il n'y a qu'une seule twig WHEN
, alors vous pouvez écrire:
COALESCE(NULLIF(input_expression,when_expression),result_expression)
Sinon, si la complexité de input_expression
est trop importante, pensez à déplacer son calcul dans une sous-requête. Donc, au lieu de:
SELECT CASE input_expression WHEN when_expression THEN result_expression [ ...n ] ELSE input_expression END, --Other columns FROM --Rest of query
Tu aurais:
SELECT CASE ie WHEN when_expression THEN result_expression [ ...n ] ELSE ie END, --Other columns FROM ( SELECT input_expression as ie, --Other columns FROM --Rest of query ) t