- Categorias:
Funções numéricas (Arredondamento e truncamento)
CEIL¶
Retorna valores de input_expr
arredondados para o inteiro igual ou maior mais próximo, ou para o valor igual ou maior mais próximo com o número especificado de casas após o ponto decimal.
- Consulte também:
Sintaxe¶
CEIL( <input_expr> [, <scale_expr> ] )
Argumentos¶
input_expr
O valor ou expressão a ser utilizado. O tipo de dados deve ser um dos tipos de dados numéricos, como FLOAT ou NUMBER.
scale_expr
O número de dígitos que a saída deve incluir após o ponto decimal. A expressão deve ser avaliada como um número inteiro de -38 a +38.
O padrão
scale_expr
é zero, o que significa que a função remove todos os dígitos após o ponto decimal.Para obter mais informações sobre escalas negativas, consulte as Notas de uso abaixo.
Retornos¶
O tipo de dados do valor retornado é NUMBER(precisão, escala).
Se a escala de entrada foi maior ou igual a zero, então a escala de saída geralmente corresponderá à escala de entrada.
Se a escala de entrada foi negativa, então a escala de saída será 0.
- Por exemplo:
O tipo de dados devolvidos por CEIL(3,14, 1) é NUMBER(4, 1).
O tipo de dados devolvidos por CEIL(3,14, 0) é NUMBER(4, 0).
O tipo de dados devolvidos por CEIL(33,33, -1) é NUMBER(5, 0).
Se a escala for zero, então o valor é efetivamente um número inteiro.
Notas de uso¶
Se
scale_expr
for negativo, então ele especificará o número de casas antes do ponto decimal para ajustar o número. Por exemplo, se a escala for -2, então o resultado será um múltiplo de 100.Se
scale_expr
for maior do que a escala de expressão de entrada, a função não tem qualquer efeito.Se o
input_expr
ou oscale_expr
for NULL, então o resultado será NULL.Quando números negativos são arredondados para cima, o valor está mais próximo de 0. Por exemplo, CEIL(-1,9) é -1, e não -2.
Se o arredondamento do número para cima gerar o número fora do intervalo de valores do tipo de dados, então um erro será retornado.
Exemplos¶
Este exemplo demonstra a função sem o parâmetro scale_expr
:
SELECT CEIL(135.135), CEIL(-975.975); +---------------+----------------+ | CEIL(135.135) | CEIL(-975.975) | |---------------+----------------| | 136 | -975 | +---------------+----------------+
Este exemplo demonstra a função com o parâmetro scale_expr
, inclusive com a escala ajustada para números negativos:
Criar e preencher uma tabela:
CREATE TRANSIENT TABLE test_ceiling (n FLOAT, scale INTEGER); INSERT INTO test_ceiling (n, scale) VALUES (-975.975, -1), (-975.975, 0), (-975.975, 2), ( 135.135, -2), ( 135.135, 0), ( 135.135, 1), ( 135.135, 3), ( 135.135, 50), ( 135.135, NULL) ;Saída:
SELECT n, scale, ceil(n, scale) FROM test_ceiling ORDER BY n, scale; +----------+-------+----------------+ | N | SCALE | CEIL(N, SCALE) | |----------+-------+----------------| | -975.975 | -1 | -970 | | -975.975 | 0 | -975 | | -975.975 | 2 | -975.97 | | 135.135 | -2 | 200 | | 135.135 | 0 | 136 | | 135.135 | 1 | 135.2 | | 135.135 | 3 | 135.135 | | 135.135 | 50 | 135.135 | | 135.135 | NULL | NULL | +----------+-------+----------------+