Partager via


Fonction ceiling

S’applique à :coche marquée oui Databricks SQL coche marquée oui 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 à -38 qui 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 expr a la valeur DECIMAL(p, s), retourne DECIMAL(p - s + 1, 0).
  • Pour tous les autres cas, retourne un BIGINT.

Si targetScale est spécifié et expr correspond à :

  • TINYINT

    Retourne une valeur DECIMAL(p, 0) avec p = max(3, -targetScale + 1).

  • SMALLINT

    Retourne une valeur DECIMAL(p, 0) avec p = max(5, -targetScale + 1).

  • INTEGER

    Retourne une valeur DECIMAL(p, 0) avec p = max(10, -targetScale + 1)).

  • BIGINT

    Retourne une valeur DECIMAL(p, 0) avec p = max(20, -targetScale + 1)).

  • FLOAT

    Retourne une valeur DECIMAL(p, s) avec p = max(14, -targetScale + 1)) et s = min(7, max(0, targetScale))

  • DOUBLE

    Retourne une valeur DECIMAL(p, s) avec p = max(30, -targetScale + 1)) et s = min(15, max(0, targetScale))

  • DECIMAL(p_in, s_in)

    Retourne une valeur DECIMAL(p, s) avec p = max(p_in - s_in + 1, -targetScale + 1)) et s = 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