如何将SQL中SUM函数的计算结果定义为Float类型?
实现SUM结果返回Float类型的方法
要让你的SQL计算结果返回Float类型,可以通过以下几种方式实现:
方式一:在CASE表达式中转换数据类型
把CASE里的默认值0改成0.0(Float类型),或者直接将Budget_Qr转换为Float,这样SUM计算时会自动以Float类型处理:SELECT @ResultVar = SUM(CASE WHEN Budget_Qr IS NULL THEN 0.0 ELSE CAST(Budget_Qr AS FLOAT) END)注:如果
Budget_Qr本身就是数值类型,只改默认值为0.0通常也能达到效果,因为SQL会自动进行隐式转换。方式二:对SUM的结果进行强制类型转换
直接用CAST或CONVERT把整个SUM的结果转换成Float类型:SELECT @ResultVar = CAST(SUM(CASE WHEN Budget_Qr IS NULL THEN 0 ELSE Budget_Qr END) AS FLOAT)或者用CONVERT(适用于SQL Server等支持的数据库):
SELECT @ResultVar = CONVERT(FLOAT, SUM(CASE WHEN Budget_Qr IS NULL THEN 0 ELSE Budget_Qr END))关键注意点
确保变量@ResultVar也被声明为Float类型,否则即使计算结果是Float,赋值给变量时也会被转换回变量的原类型。声明示例:DECLARE @ResultVar FLOAT
内容的提问来源于stack exchange,提问作者Eliran Bitton
相关产品推荐
相关产品推荐

