【发布时间】:2011-08-01 23:24:50
【问题描述】:
我有一个employee 表,其中包含:
emp id Sum
------ ---
1 7
2 6
在将Sum 除以 8 时,我需要一个 SQL 查询来获取商和余数。
【问题讨论】:
-
这听起来仍然是一个有效的问题。
标签: mysql sql numbers division modulo
我有一个employee 表,其中包含:
emp id Sum
------ ---
1 7
2 6
在将Sum 除以 8 时,我需要一个 SQL 查询来获取商和余数。
【问题讨论】:
标签: mysql sql numbers division modulo
对于我通常使用的 PL/SQL 函数:
SELECT trunc(sum/8) --- Quotient
SELECT mod(sum/8) -- Remainder
【讨论】:
您可以使用% 运算符来获取余数。这是一个例子。
SELECT Round(17 / 4) -- quotient without decimal
SELECT 17 % 4 -- remainder
【讨论】:
使用 floor 函数,从 dual 中选择 floor(column_name/divisor)
【讨论】:
使用integer division 和mod 运算符获得商和余数:
SELECT
emp_id,
sum,
sum / 8 AS Result,
sum div 8 AS Quotient,
sum mod 8 AS Remainder
FROM employee
emp_id sum Result Quotient Remainder
1 7 0.8750 0 7
2 6 0.7500 0 6
3 9 1.1250 1 1
4 10 1.2500 1 2
5 11 1.3750 1 3
6 12 1.5000 1 4
7 13 1.6250 1 5
8 14 1.7500 1 6
9 15 1.8750 1 7
10 16 2.0000 2 0
【讨论】:
你可以使用mysql函数DIV来获取qoutient (http://dev.mysql.com/doc/refman/5.0/en/arithmetic-functions.html#operator_div) :
SELECT 14 DIV 3
将返回 4
它应该可以解决问题
至于剩下的,其他人已经回复了
【讨论】:
您的 qoutient 的返回类型是什么?如果您不在乎它是浮点数还是整数(整数)。你可以试试这个。
SELECT
(sum / 8) AS qoutient,
(sum % 8) AS reminder
FROM employee
【讨论】: