

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# MOD 函数
<a name="MOD"></a>

返回两个数字的余数，也称为*取模* 运算。将第一个参数除以第二个参数来计算结果。

## 语法
<a name="MOD-synopsis"></a>

```
MOD(number1, number2)
```

## 参数
<a name="MOD-arguments"></a>

 *number1*   
第一个输入参数是 INTEGER、SMALLINT、BIGINT 或 DECIMAL 数。如果其中一个参数是 DECIMAL 类型，则另一参数也必须是 DECIMAL 类型。如果其中一个参数是 INTEGER，则另一参数可以是 INTEGER、SMALLINT 或 BIGINT。两个参数也都可以是 SMALLINT 或 BIGINT，但如果一个参数是 BIGINT，则另一个参数不能是 SMALLINT。

 *number2*   
第二个参数是 INTEGER、SMALLINT、BIGINT 或 DECIMAL 数。相同的数据类型规则与 *number1* 一样适用于 *number2*。

## 返回类型
<a name="MOD-return-type"></a>

有效的返回类型是 DECIMAL、INT、SMALLINT 或 BIGINT。如果两个参数属于相同的类型，MOD 函数的返回类型是与输入参数相同的数值类型。但是，如果其中一个输入参数是 INTEGER，返回类型也将是 INTEGER。

## 使用说明
<a name="MOD-usage-notes"></a>

您可以使用 *%* 作为取模运算符。

## 示例
<a name="MOD-example"></a>

以下示例返回一个数字除以另一个数字后的余数：

```
SELECT MOD(10, 4);
               
 mod
------
 2
```

以下示例返回一个小数结果：

```
SELECT MOD(10.5, 4);
               
 mod
------
 2.5
```

您可以转换参数值：

```
SELECT MOD(CAST(16.4 as integer), 5);
               
 mod
------
 1
```

通过将第一个参数除以 2 来检查该参数是否为偶数：

```
SELECT mod(5,2) = 0 as is_even;
               
 is_even
--------
 false
```

您可以使用 *%* 作为取模运算符：

```
SELECT 11 % 4 as remainder;
               
 remainder
-----------
 3
```

以下示例返回 CATEGORY 表中的奇数类别的信息：

```
select catid, catname
from category
where mod(catid,2)=1
order by 1,2;

 catid |  catname
-------+-----------
     1 | MLB
     3 | NFL
     5 | MLS
     7 | Plays
     9 | Pop
    11 | Classical

(6 rows)
```