Função MOD - Amazon Redshift

Função MOD

Retorna o resto de dois números, também chamado de operação modulo. Para calcular o resultado, o primeiro parâmetro é dividido pelo segundo.

Sintaxe

MOD(number1, number2)

Argumentos

number1

O primeiro parâmetro de entrada é um número INTEGER, SMALLINT, BIGINT ou DECIMAL. Se um dos parâmetros for do tipo DECIMAL, o outro parâmetro também deverá ser do tipo DECIMAL. Se um dos parâmetros for um INTEGER, o outro parâmetro poderá ser um INTEGER, SMALLINT ou BIGINT. Ambos os parâmetros também podem ser SMALLINT ou BIGINT, mas um parâmetro não poderá ser SMALLINT se o outro for BIGINT.

number2

O segundo parâmetro é um número INTEGER, SMALLINT, BIGINT ou DECIMAL. As mesmas regras de tipo de dados são válidas para number2 e number1.

Tipo de retorno

O tipo de retorno da função MOD é o mesmo tipo numérico que os parâmetros de entrada se ambos os parâmetros de entrada forem do mesmo tipo. Se um dos parâmetro de entrada for INTEGER, porém, o tipo de retorno também será INTEGER. Os tipos de retorno válidos são DECIMAL, INT, SMALLINT e BIGINT.

Observações de uso

Você pode usar % como um operador de módulo.

Exemplos

Para retornar o resto da divisão de um número por outro, use o exemplo a seguir.

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

Para devolver um resultado DECIMAL ao usar a função MOD, use o exemplo a seguir.

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

Para transmitir um número antes de executar a função MOD, use o exemplo a seguir. Para ter mais informações, consulte Função CAST.

SELECT MOD(CAST(16.4 AS INTEGER), 5); +-----+ | mod | +-----+ | 1 | +-----+

Para verificar se o primeiro parâmetro é par dividindo-o por 2, use o exemplo a seguir.

SELECT mod(5,2) = 0 AS is_even; +---------+ | is_even | +---------+ | false | +---------+

Para usar % como operador de módulo, use o exemplo a seguir.

SELECT 11 % 4 as remainder; +-----------+ | remainder | +-----------+ | 3 | +-----------+

Os exemplos a seguir usa o banco de dados de exemplo de TICKIT. Para ter mais informações, consulte Banco de dados de exemplo.

Para retornar informações das categorias com números ímpares na tabela CATEGORY, use o exemplo a seguir.

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