Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Função
Aplica-se a:
SQL do Databricks
Databricks Runtime 11.3 LTS e versões posteriores
Retorna o menor número não menor do que expr arredondado para cima para targetScale dígitos em relação ao ponto decimal. Essa função é um sinônimo de ceil função.
Sintaxe
ceiling(expr [, targetScale])
Argumentos
-
expr: uma expressão avaliada como um numérico. -
targetScale: um literal INTEGER opcional maior do que-38especificando em quantos dígitos após as casas decimais arredondar para cima.
Retornos
Se nenhum targetScale for fornecido:
- Se
exprforDECIMAL(p, s), retornaDECIMAL(p - s + 1, 0). - Para todos os outros casos, retorna um BIGINT.
Se targetScale for especificado e expr for um:
TINYINTRetornará um
DECIMAL(p, 0)comp = max(3, -targetScale + 1).SMALLINTRetornará um
DECIMAL(p, 0)comp = max(5, -targetScale + 1).INTEGERRetornará um
DECIMAL(p, 0)comp = max(10, -targetScale + 1)).BIGINTRetornará um
DECIMAL(p, 0)comp = max(20, -targetScale + 1)).FLOATRetornará um
DECIMAL(p, s)comp = max(14, -targetScale + 1))es = min(7, max(0, targetScale))DOUBLERetornará um
DECIMAL(p, s)comp = max(30, -targetScale + 1))es = min(15, max(0, targetScale))DECIMAL(p_in, s_in)Retornará um
DECIMAL(p, s)comp = max(p_in - s_in + 1, -targetScale + 1))es = min(s_in, max(0, targetScale))
Se targetScale for negativo, o arredondamento ocorrerá para -targetScale dígitos à esquerda do ponto decimal.
O targetScale padrão é 0, que arredonda para cima até o próximo número integral maior.
Quando targetScale é especificado com um tipo de entrada integral, Azure Databricks gera ARITHMETIC_OVERFLOW se o resultado estourar o tipo de saída.
Aviso
No Databricks Runtime, se spark.sql.ansi.enabled for false, um estouro não causará um erro, mas "encapsula" o resultado.
Condições de erro comuns
Exemplos
> SELECT ceiling(-0.1);
0
> SELECT ceiling(5);
5
> SELECT ceiling(5.4);
6
> SELECT ceiling(3345.1, -2);
3400
> SELECT ceiling(-12.345, 1);
-12.3
-- Rounding 127 to the nearest 10 produces 130, which overflows TINYINT.
> SELECT ceiling(cast(127 AS TINYINT), -1);
Error: ARITHMETIC_OVERFLOW