View a markdown version of this page

MOD 函数 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

2026 年 6 月 30 日之后,Amazon Redshift 不再支持使用 Python UDF。我们将分阶段开始执行。有关 Python 生命周期终止和迁移选项详情的更多信息,请参阅 2025 年 6 月 30 日发布的博客文章。

MOD 函数

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

语法

MOD(number1, number2)

参数

number1

第一个输入参数是 INTEGER、SMALLINT、BIGINT 或 DECIMAL 数值。如果任一参数是 DECIMAL 类型,则另一参数也必须是 DECIMAL 类型。如果任一参数是 INTEGER,则另一参数可以是 INTEGER、SMALLINT 或 BIGINT。两个参数也可以都是 SMALLINT 或 BIGINT,但如果一个参数是 BIGINT,则另一个参数不能是 SMALLINT。

number2

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

返回类型

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

使用说明

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

示例

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

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

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

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

要在运行 MOD 函数之前强制转换数值,请使用以下示例。有关更多信息,请参阅 CAST 函数。

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 示例数据库。有关更多信息,请参阅 示例数据库。

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