Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Fonction
S’applique à :
Databricks SQL
Databricks Runtime 11.3 LTS et versions ultérieures
Retourne le plus petit nombre non inférieur à expr arrondi à targetScale chiffres après la virgule à l’unité supérieure. Cette fonction est un synonyme de ceil fonction.
Syntaxe
ceiling(expr [, targetScale])
Arguments
-
expr: Expression qui prend une valeur numérique. -
targetScale: littéral ENTIER facultatif supérieur à-38qui spécifie le nombre de chiffres après la virgule auquel effectuer l’arrondi à l’unité supérieure.
Retours
Si aucune valeur targetScale n’est donnée :
- Si
expra la valeurDECIMAL(p, s), retourneDECIMAL(p - s + 1, 0). - Pour tous les autres cas, retourne un BIGINT.
Si targetScale est spécifié et expr correspond à :
TINYINTRetourne une valeur
DECIMAL(p, 0)avecp = max(3, -targetScale + 1).SMALLINTRetourne une valeur
DECIMAL(p, 0)avecp = max(5, -targetScale + 1).INTEGERRetourne une valeur
DECIMAL(p, 0)avecp = max(10, -targetScale + 1)).BIGINTRetourne une valeur
DECIMAL(p, 0)avecp = max(20, -targetScale + 1)).FLOATRetourne une valeur
DECIMAL(p, s)avecp = max(14, -targetScale + 1))ets = min(7, max(0, targetScale))DOUBLERetourne une valeur
DECIMAL(p, s)avecp = max(30, -targetScale + 1))ets = min(15, max(0, targetScale))DECIMAL(p_in, s_in)Retourne une valeur
DECIMAL(p, s)avecp = max(p_in - s_in + 1, -targetScale + 1))ets = min(s_in, max(0, targetScale))
Si targetScale est négatif, l’arrondi se produit à -targetScale chiffres à gauche de la virgule.
La valeur targetScale par défaut est 0, ce qui arrondit au nombre intégral le plus grand suivant.
Lorsque targetScale est spécifié avec un type d’entrée intégral, Azure Databricks déclenche ARITHMETIC_OVERFLOW si le résultat dépasse le type de sortie.
Avertissement
Dans Databricks Runtime, si spark.sql.ansi.enabled est falseactivé, un dépassement de capacité n’entraîne pas d’erreur, mais « encapsule » le résultat à la place.
Conditions d’erreur courantes
Exemples
> 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