Modulo 似乎无法在 SQL Server 2012 中工作
Modulo seems to not be working in SQL Server 2012
我有一个使用 1 table 的简单 select 语句。其中一列取该列的值,除以它,然后取模,但我最后得到一个小数。为什么模数不起作用?
SELECT
(numeric_datatype_column / 10000) % 100
FROM
table a
我所有的值都是小数形式。模数不应该给我一个整数吗?
Shouldn't the modulo give me an integer?
没有。 moduloreturn是除法后的余数。如果您的值是十进制值,模数也会 return 小数部分。它没有被截断。
作为一个工作示例:
Select (123.1234 / 10) % 5
2.3123400
如果你想去除小数,你可以将结果转换为 INT
然后做模:
Select Convert(Int, (123.1234 / 10)) % 5
2
我有一个使用 1 table 的简单 select 语句。其中一列取该列的值,除以它,然后取模,但我最后得到一个小数。为什么模数不起作用?
SELECT
(numeric_datatype_column / 10000) % 100
FROM
table a
我所有的值都是小数形式。模数不应该给我一个整数吗?
Shouldn't the modulo give me an integer?
没有。 moduloreturn是除法后的余数。如果您的值是十进制值,模数也会 return 小数部分。它没有被截断。
作为一个工作示例:
Select (123.1234 / 10) % 5
2.3123400
如果你想去除小数,你可以将结果转换为 INT
然后做模:
Select Convert(Int, (123.1234 / 10)) % 5
2