なぜ、これを実行すると、答えとして2.00が得られるのですか?
declare @temp int = 2
select CASE WHEN @temp = 1 THEN cast(@temp as decimal(5, 2))
WHEN @temp = 2 THEN @temp
ELSE NULL
END
しかし、これを実行すると、@ temp2だけを選択すると、答えとして2が得られます。
declare @temp2 int = 2
select CAST(@temp2 as decimal(5,2))
select @temp2
ブリッジは正しいです:
result_expressionsの型のセットとオプションのelse_result_expressionから最も優先度の高い型を返します。(出典)