【问题标题】:How to get the quotient and remainder of division如何获得除法的商和余数
【发布时间】:2011-08-01 23:24:50
【问题描述】:

我有一个employee 表,其中包含:

emp id      Sum
------      ---
1            7
2            6

在将Sum 除以 8 时,我需要一个 SQL 查询来获取商和余数。

【问题讨论】:

  • 这听起来仍然是一个有效的问题。

标签: mysql sql numbers division modulo


【解决方案1】:

对于我通常使用的 PL/SQL 函数:

 SELECT trunc(sum/8) --- Quotient
 SELECT mod(sum/8) -- Remainder 

【讨论】:

    【解决方案2】:

    您可以使用% 运算符来获取余数。这是一个例子。

    SELECT Round(17 / 4) -- quotient without decimal   
    SELECT 17 % 4 -- remainder
    

    【讨论】:

      【解决方案3】:

      使用 floor 函数,从 dual 中选择 floor(column_name/divisor)

      【讨论】:

        【解决方案4】:

        使用integer divisionmod 运算符获得商和余数:

        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
        

        【讨论】:

          【解决方案5】:

          你可以使用mysql函数DIV来获取qoutient (http://dev.mysql.com/doc/refman/5.0/en/arithmetic-functions.html#operator_div) :

          SELECT 14 DIV 3 
          

          将返回 4

          它应该可以解决问题

          至于剩下的,其他人已经回复了

          【讨论】:

            【解决方案6】:

            您的 qoutient 的返回类型是什么?如果您不在乎它是浮点数还是整数(整数)。你可以试试这个。

             SELECT 
                   (sum / 8) AS qoutient, 
                   (sum % 8) AS reminder 
              FROM employee
            

            【讨论】:

              猜你喜欢
              • 2018-12-07
              • 2012-01-09
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-11-04
              • 1970-01-01
              相关资源
              最近更新 更多