Función ceiling

Se aplica a:casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 11.3 LTS y versiones posteriores

Esta función devuelve el número más pequeño no menor que el valor del elemento expr y redondeado hacia arriba hasta los dígitos targetScale relativos a la coma decimal. Esta función es un sinónimo de ceil función.

Sintaxis

ceiling(expr [, targetScale])

Argumentos

  • expr: una expresión que se evalúa como un número.
  • targetScale: un literal INTEGER opcional mayor que -38 que especifica cuántos dígitos después de los puntos decimales se redondean hacia arriba.

Devoluciones

Si no se da ninguna targetScale:

  • Si expr es DECIMAL(p, s), devuelve DECIMAL(p - s + 1, 0).
  • En todos los demás casos, devuelve un valor BIGINT.

Si targetScale se especifica y expr es:

  • TINYINT

    Devuelve un DECIMAL(p, 0) objeto con p = max(3, -targetScale + 1).

  • SMALLINT

    Devuelve un DECIMAL(p, 0) objeto con p = max(5, -targetScale + 1).

  • INTEGER

    Devuelve un DECIMAL(p, 0) objeto con p = max(10, -targetScale + 1)).

  • BIGINT

    Devuelve un DECIMAL(p, 0) objeto con p = max(20, -targetScale + 1)).

  • FLOAT

    Devuelve un DECIMAL(p, s) objeto con p = max(14, -targetScale + 1)) y s = min(7, max(0, targetScale))

  • DOUBLE

    Devuelve un DECIMAL(p, s) objeto con p = max(30, -targetScale + 1)) y s = min(15, max(0, targetScale))

  • DECIMAL(p_in, s_in)

    Devuelve un DECIMAL(p, s) objeto con p = max(p_in - s_in + 1, -targetScale + 1)) y s = min(s_in, max(0, targetScale))

Si targetScale es negativo, el redondeo se produce en -targetScale dígitos a la izquierda del punto decimal.

El valor predeterminado targetScale es 0, que se redondea hacia abajo hasta el siguiente número entero más pequeño.

Cuando se especifica targetScale con un tipo de entrada entero, Azure Databricks genera ARITHMETIC_OVERFLOW si el resultado desborda el tipo de salida.

Advertencia

En Databricks Runtime, si spark.sql.ansi.enabled es false, un desbordamiento no produce un error, sino que "encapsula" el resultado en su lugar.

Condiciones de error comunes

Ejemplos

> 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