1

単純な式の構文はCASE、Microsoft のドキュメントに次のように記載されています。

CASE input_expression 
     WHEN when_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END 

input_expression二度目のクエリを書き直さずに次のことを行うことは可能ですか?

CASE input_expression 
     WHEN when_expression THEN result_expression [ ...n ] 
     [ ELSE **input_expression** ] 
END 

ありがとう!

エズ

4

1 に答える 1

3

でなく、ブランチが 1 つしかinput_expressionない場合NULLは、次のように記述できます。WHEN

COALESCE(NULLIF(input_expression,when_expression),result_expression)

それ以外の場合、 の複雑さinput_expressionが大きすぎる場合は、その計算をサブクエリ内に移動することを検討してください。したがって、代わりに:

SELECT
CASE input_expression 
     WHEN when_expression THEN result_expression [ ...n ] 
     ELSE input_expression 
END,
--Other columns
FROM
   --Rest of query

次のようになります。

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
于 2013-04-10T06:54:20.160 に答える