为什么,当你运行它时,你会得到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 的类型集中返回优先级最高的类型。(来源)