使用T-SQL和Microsoft SQL Server,我想指定十进制数字的数量,当我做2个整数之间的除法,如:

select 1/3

它当前返回0。我想让它返回(0,33)

喜欢的东西:

select round(1/3, -2)

但这行不通。我怎样才能达到预期的结果?


当前回答

use

select 1/3.0

这个就行了。

其他回答

看起来这个技巧在SQL Server中有效,而且更短(基于之前的回答)

SELECT 1.0*MyInt1/MyInt2

Or:

SELECT (1.0*MyInt1)/MyInt2

如果你来这里(就像我一样)寻找整数值的解决方案,以下是答案:

CAST(9/2 AS UNSIGNED)

返回5

我很惊讶地看到select 0.7/0.9在Teradata中返回0.8,因为它们已经作为浮点数/十进制数!我必须做cast(0.7作为float)来获得我所追求的输出。

use

select 1/3.0

这个就行了。

因为SQL Server执行整数除法。试试这个:

select 1 * 1.0 / 3

当您将整数作为参数传递时,这很有帮助。

select x * 1.0 / y