No PostgreSQL, o
div()
A função retorna o quociente inteiro de seu primeiro argumento dividido por seu segundo argumento. Sintaxe
A sintaxe oficial é assim:
div(y numeric, x numeric)
Exemplo
Aqui está um exemplo de como funciona.
SELECT div(12, 3);
Resultado:
4
Neste caso eu dividi 12 por 3, e o resultado é 4.
Mais divisões
Aqui estão mais algumas divisões no mesmo número.
SELECT
div(12, 1),
div(12, 2),
div(12, 3),
div(12, 4);
Resultado:
div | div | div | div -----+-----+-----+----- 12 | 6 | 4 | 3
Resultados fracionários
Esta função retorna o quociente inteiro, portanto, quaisquer valores fracionários são omitidos do resultado.
SELECT div(12, 5);
Resultado:
2
12 dividido por 5 é na verdade 2,4, mas essa função não retorna a parte fracionária e então obtemos 2.
Também não parece haver nenhum arredondamento feito. Por exemplo, 9 dividido por 5 é 1,8, mas
div()
retorna 1 (não arredonda para 2). SELECT div(9, 5);
Resultado:
1
Portanto, ele se comporta mais como aplicar
trunc()
(ou talvez até floor()
) ao resultado, em vez de round()
ou ceiling()
. Divisão por Zero
Se você tentar dividir um número por zero, receberá um erro.
SELECT div(12, 0);
Resultado:
ERROR: division by zero
Mas se você dividir zero por outro número, obterá apenas zero.
SELECT div(0, 12);
Resultado:
0