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

MOD 函数

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

语法

MOD(number1, number2)

参数

number1

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

number2

第二个参数是 INTEGERSMALLINTBIGINTDECIMAL 数值。相同的数据类型规则与 number1 一样适用于 number2

返回类型

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

使用说明

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

示例

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

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