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
ouDECIMAL
. Se um dos parâmetros for do tipoDECIMAL
, o outro parâmetro também deverá ser do tipoDECIMAL
. Se um dos parâmetros for umINTEGER
, o outro parâmetro poderá ser umINTEGER
,SMALLINT
ouBIGINT
. Ambos os parâmetros também podem serSMALLINT
ouBIGINT
, mas um parâmetro não poderá serSMALLINT
se o outro forBIGINT
. - number2
-
O segundo parâmetro é um número
INTEGER
,SMALLINT
,BIGINT
ouDECIMAL
. 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 |
+-------+-----------+