Catégories :

Fonctions numériques (arrondi et troncation)

CEIL

Renvoie les valeurs de expr_saisie arrondies à l’entier le plus proche, égal ou supérieur, ou à la valeur la plus proche, égale ou supérieure, avec le nombre de places spécifié après le point décimal.

Voir aussi :

FLOOR , ROUND , TRUNCATE , TRUNC

Syntaxe

CEIL( <input_expr> [, <scale_expr> ] )

Arguments

expr_saisie

Valeur ou expression sur laquelle opérer. Le type de données doit être l’un des types de données numériques, tels que FLOAT ou NUMBER.

expr_échelle

Nombre de chiffres que la sortie doit inclure après le point décimal. L’expression doit correspondre à un entier compris entre -38 et +38.

La valeur expr_échelle par défaut est zéro, ce qui signifie que la fonction supprime tous les chiffres après le point décimal.

Pour plus d’informations sur les échelles négatives, voir les Notes d’utilisation ci-dessous.

Renvoie

Le type de données de la valeur renvoyée est NUMBER (précision, échelle).

Si l’échelle d’entrée était supérieure ou égale à zéro, l’échelle de sortie correspond généralement à l’échelle d’entrée.

Si l’échelle d’entrée était négative, l’échelle de sortie est 0.

Par exemple :
  • Le type de données renvoyé par CEIL(3.14, 1) est NUMBER(4, 1).

  • Le type de données renvoyé par CEIL(3.14, 0) est NUMBER(4, 0).

  • Le type de données renvoyé par CEIL(33.33, -1) est NUMBER(5, 0).

Si l’échelle est égale à zéro, la valeur est effectivement un entier.

Notes sur l’utilisation

  • Si expr_échelle est négatif, alors il spécifie le nombre de positions avant le point décimal auquel le nombre doit être ajusté. Par exemple, si l’échelle est -2, le résultat est un multiple de 100.

  • Si expr_échelle est plus grand que l’échelle d’expression en entrée, la fonction n’a aucun effet.

  • Si expr_saisie ou expr_échelle est NULL, le résultat est NULL.

  • Lorsque des nombres négatifs sont arrondis à la valeur supérieure la plus proche, la valeur est plus proche de 0 ; par exemple, CEIL (-1,9) correspond à -1 et non à -2.

  • Si vous arrondissez le nombre à la hausse pour amener le nombre en dehors de la plage de valeurs du type de données, une erreur est renvoyée.

Exemples

Cet exemple illustre la fonction sans le paramètre expr_échelle :

SELECT CEIL(135.135), CEIL(-975.975);
+---------------+----------------+
| CEIL(135.135) | CEIL(-975.975) |
|---------------+----------------|
|           136 |           -975 |
+---------------+----------------+

Cet exemple illustre la fonction avec le paramètre expr_échelle, y compris avec l’échelle définie sur des nombres négatifs :

Créez et remplissez une table :

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)
   ;

Sortie :

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 |
+----------+-------+----------------+