我有一个简单的select语句,它使用1个表。其中一列取该列的值,除以它,然后在此之后进行模数但最终得到一个小数。为什么模数不起作用?
SELECT
(numeric_datatype_column / 10000) % 100
FROM
table a
我的所有值都以小数形式出现。模数不应该给我一个整数吗?
答案 0 :(得分:2)
模数不应该给我一个整数吗?
没有。 modulo返回除法后值的余数。如果您的值是十进制值,则模数也将返回小数组件。它没有被截断。
作为一个工作示例:
Select (123.1234 / 10) % 5
2.3123400
如果要删除小数,可以将结果转换为INT
,然后执行模数:
Select Convert(Int, (123.1234 / 10)) % 5
2