我有下面这样一个专栏。
Value _____ 48 48 39 96 50
我想把这个除以48。从上述5个值中,第1、2、4行可以划分,但第3、5行不能划分。我必须用sql来实现这一点。如:
select count(*) from tbl where value/42 Result: 2
fhity93d1#
当整数被48除时,您要求的是余数。在数学中有一个特殊的名字,模运算。这实际上是数论和群论中非常有趣的一部分。大多数数据库都支持模运算符或函数 % . 所以这个想法是:
%
select value from t where value % 48 = 0;
这可能是:
where value mod 48 = 0 where mod(value, 48) = 0
取决于数据库。另一种方法是:
where floor(val / 48) * 48 = val
oxalkeyp2#
你可以用一个简单的where子句来实现
SELECT value FROM table WHERE value%48 = 0
模运算符返回操作数除法的余数,这实际上意味着我们正在检查数字是否可整除(当数字可整除时,余数为零)所以,如果你试图计算什么是不可除的,那么简单的使用下面的查询
SELECT count(value) FROM table WHERE value%48 != 0
qpgpyjmq3#
您可以使用模数(%)来查找结果。检查下面的查询,它将帮助您。
declare @tbl table (val int) insert @tbl values(48),(48),(39),(96),(50) select * from @tbl where val % 48 =0
输出
val 48 48 96
3条答案
按热度按时间fhity93d1#
当整数被48除时,您要求的是余数。在数学中有一个特殊的名字,模运算。这实际上是数论和群论中非常有趣的一部分。
大多数数据库都支持模运算符或函数
%
. 所以这个想法是:这可能是:
取决于数据库。
另一种方法是:
oxalkeyp2#
你可以用一个简单的where子句来实现
模运算符返回操作数除法的余数,这实际上意味着我们正在检查数字是否可整除(当数字可整除时,余数为零)
所以,如果你试图计算什么是不可除的,那么简单的使用下面的查询
qpgpyjmq3#
您可以使用模数(%)来查找结果。检查下面的查询,它将帮助您。
输出