Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


REMAINDER

📄字数 803
👁️阅读量 加载中...

功能描述

求余数,返回(expr1 - n * expr2)的值,其中nexpr1/expr2的最接近整数(四舍五入)。

语法格式

sql
REMAINDER(expr1, expr2)

输入参数

  • expr1:数值类型,或能隐式转换为数值类型的其他类型的值或者表达式。
  • expr2:数值类型,或能隐式转换为数值类型的其他类型的值或者表达式。

提示

可通过系统参数error_for_division_zero(默认值为TRUE),控制除数expr2为零时数据库处理规则。参数值为TRUE时报错,为FALSE时返回NULL
两个参数为DOUBLE/FLOAT类型时,不受error_for_division_zero参数控制,直接返回NAN

输出结果

输出结果类型与输入参数类型一致。如果任意输入参数为 NULL,则输出结果为 NULL

示例

sql
-- 查询8/3和15.2/2.1的余数
SQL> SELECT REMAINDER(8,3),REMAINDER(15.2,2.1) FROM dual;

+-------+-------+
| EXPR1 | EXPR2 |
+-------+-------+
| -1    | 0.5   |
+-------+-------+

-- 设置error_for_division_zero为true,除数为零时直接报错
SQL> SHOW error_for_division_zero;

+-------------------------+
| ERROR_FOR_DIVISION_ZERO |
+-------------------------+
| T                       |
+-------------------------+

SQL> SELECT REMAINDER(1,0);

Error: [E19005 L1 C8] 除数为0

-- double类型,除数为零,返回NaN
SQL> SELECT REMAINDER(1.1::double,0::double);

+-------+
| EXPR1 |
+-------+
| NaN   |
+-------+

-- -- float类型,除数为零,返回NaN
SQL> SELECT REMAINDER(1.1::float,0::float);

+-------+
| EXPR1 |
+-------+
| NaN   |
+-------+

-- 设置error_for_division_zero为false,除数为零时返回NULL
SQL> SET error_for_division_zero TO FALSE;

SQL> SHOW error_for_division_zero;

+-------------------------+
| ERROR_FOR_DIVISION_ZERO |
+-------------------------+
| F                       |
+-------------------------+

SQL> SELECT REMAINDER(1,0);

+--------+
| EXPR1  |
+--------+
| <NULL> |
+--------+