- Catégories :
Fonctions numériques (arrondi et troncation)
CEIL¶
Renvoie les valeurs de input_expr
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 :
Syntaxe¶
CEIL( <input_expr> [, <scale_expr> ] )
Arguments¶
input_expr
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.
scale_expr
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
scale_expr
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
scale_expr
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
scale_expr
est plus grand que l’échelle d’expression en entrée, la fonction n’a aucun effet.Si
input_expr
ouscale_expr
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 scale_expr
:
SELECT CEIL(135.135), CEIL(-975.975); +---------------+----------------+ | CEIL(135.135) | CEIL(-975.975) | |---------------+----------------| | 136 | -975 | +---------------+----------------+
Cet exemple illustre la fonction avec le paramètre scale_expr
, 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 | +----------+-------+----------------+