Modulo似乎无法在SQL Server 2012中运行

时间:2017-08-14 18:50:08

标签: sql-server tsql sql-server-2012 modulo

我有一个简单的select语句,它使用1个表。其中一列取该列的值,除以它,然后在此之后进行模数但最终得到一个小数。为什么模数不起作用?

SELECT
    (numeric_datatype_column / 10000) % 100
FROM 
    table a

我的所有值都以小数形式出现。模数不应该给我一个整数吗?

1 个答案:

答案 0 :(得分:2)

  

模数不应该给我一个整数吗?

没有。 modulo返回除法后值的余数。如果您的值是十进制值,则模数也将返回小数组件。它没有被截断。

作为一个工作示例:

Select (123.1234 / 10) % 5
  

2.3123400

如果要删除小数,可以将结果转换为INT,然后执行模数:

Select Convert(Int, (123.1234 / 10)) % 5
  

2