SQL_expression_expression de cas SQL Server

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