使用T-SQL和Microsoft SQL Server,当我在两个整数之间进行除法时,我想指定小数位数,如下所示:
select 1/3
它当前返回0
。我希望它返回0,33
。
类似于:
select round(1/3, -2)
但这并不管用。如何才能达到预期的效果?
发布于 2012-07-30 20:05:45
如果你正在寻找一个常量,来自stb和xiowl的建议是很好的。如果您需要使用现有的整型字段或参数,可以先将它们转换为浮点型:
SELECT CAST(1 AS float) / CAST(3 AS float)
或
SELECT CAST(MyIntField1 AS float) / CAST(MyIntField2 AS float)
发布于 2012-07-30 17:55:54
因为SQL Server执行整数除法。试试这个:
select 1 * 1.0 / 3
当您将整数作为参数传递时,这很有帮助。
select x * 1.0 / y
发布于 2015-06-04 16:55:52
没有必要同时对它们进行强制转换。分区的结果数据类型始终是具有较高data type precedence的数据类型。因此,解决方案必须是:
SELECT CAST(1 AS float) / 3
或
SELECT 1 / CAST(3 AS float)
https://stackoverflow.com/questions/11719044
复制相似问题