

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://www.amazonaws.cn/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

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

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

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

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

## 参数
<a name="r_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="r_MOD-return-type"></a>

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

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

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

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

要返回一个数值除以另一个数值后的余数，请使用以下示例。

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

要在使用 MOD 函数时返回 `DECIMAL` 结果，请使用以下示例。

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

要在运行 MOD 函数之前强制转换数值，请使用以下示例。有关更多信息，请参阅 [CAST 函数](r_CAST_function.md)。

```
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 |
+-----------+
```

以下示例使用 TICKIT 示例数据库。有关更多信息，请参阅 [示例数据库](c_sampledb.md)。

要返回 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 |
+-------+-----------+
```