sql - oracle中的MOD和REMAINDER有什么区别?

标签 sql oracle11g

尽管这两个功能执行相同的操作,但即使它们产生相同的o/p,这两者之间的基本区别是什么?是否存在与性能相关的差异(如果是),那么哪个更好?

谢谢

最佳答案

documentation的区别很明显:

NOTE

The REMAINDER function uses the round function in its formula, whereas the MOD function uses the floor function in its formula.



换句话说,当参数是正整数时,mod函数将返回一个介于0和第二个参数之间的正数。余数函数返回一个绝对值小于第二个参数除以2的数字。

对于负数,差异可能更明显。差异的一个示例是:
REMAINDER(-15, 4)
MOD(-15, 4)

第一个给出-3,第二个给出1

编辑:

这是怎么回事4变成-15有多少次。一种方法是“-4”乘以剩余的1。即:-15 = 4 *(-4)+1。另一种方法是“-3”乘以:-15 = 4 *(-3)-3。

-15/4的差表示为整数。使用floor,您得到-4。使用回合,您得到-3

关于sql - oracle中的MOD和REMAINDER有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24449229/

相关文章:

mysql - 在 HAVING 和 WHERE 子句之间使用 OR 运算符的 SQL 查询

html - 在 Oracle 查询中处理 HTML 数据

mysql - 使用mysql进行复杂排序和分组

sql - Sql Server 中的标量最大值

sql - 根据某些条件修改列值

select - 如何列出可通过数据库链接访问的表?

java - SQL嵌套异常

oracle - 在 Oracle 中捕获/捕获存储过程调用(带参数)的快速方法?

sql - 在 MySQL 一对多中加入新列

sql - 使用 SQL 计算精确的日期差(以年为单位)