我对SQL有一个非常奇怪的问题。我有一个22号的单元格,当我想绕它时,结果是不正确的。
如果我尝试使用数字而不是单元格,则代码效果很好。
select Mora2, round(Mora2/30,0)*30, mora2+1,
round((mora2+1)/30,0)*30, round(convert(float,mora2)/30,0)*30
from Trimestre
结果是
Mora2 (No column name) (No column name) (No column name) (No column name)
22 30 23 30 30
如果我尝试使用该号码,则代码效果很好。
select round(22/30,0)*30 as Mora2
Mora2
0
为什么可能呢?
谢谢!
答案 0 :(得分:1)
只要您使用它来删除小数部分并确保整数除法,您就可以CAST(Mora2 AS INT)
。
当分子或分母不是整数时,除法的结果将具有小数位。所以22.0/30
= 0.733333
而22/30
= 0