- 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_exprThe value or expression to operate on. The data type must be one of the numeric data types, such as DECFLOAT, FLOAT, or NUMBER.
scale_exprThe number of digits the output includes after the decimal point.
La valeur
scale_exprpar défaut est zéro, ce qui signifie que la fonction supprime tous les chiffres après le point décimal.For information about negative scales, see Notes sur l’utilisation.
Renvoie¶
Le type de retour est basé sur le type d’entrée :
Si l’expression d’entrée est un FLOAT, le type renvoyé est un FLOAT.
If the input expression is DECFLOAT, the returned type is DECFLOAT.
Si l’expression d’entrée est un NUMBER, le type renvoyé est un NUMBER.
Si l’échelle d’entrée est constante :
Si l’échelle d’entrée est positive, le type renvoyé a une échelle égale à l’échelle d’entrée et a une précision suffisamment grande pour englober tout résultat possible.
Si l’échelle d’entrée est négative, le type renvoyé a une échelle de 0.
Si l’échelle d’entrée n’est pas constante, l’échelle du type renvoyé est la même que celle de l’expression d’entrée.
Si l’échelle est égale à zéro, la valeur est effectivement un INTEGER.
Par exemple :
Le type de données renvoyé par CEIL(3.14::FLOAT, 1) est FLOAT.
Le NUMBER retourné par CEIL(3.14, 1) a une échelle de 1 et une précision d’au moins 3.
Le NUMBER retourné par CEIL(-9.99, 0) a une échelle de 0 et une précision d’au moins 2.
Le NUMBER retourné par CEIL(33.33, -1) a une échelle de 0 et une précision d’au moins 3.
Notes sur l’utilisation¶
Si
scale_exprest 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_exprest plus grand que l’échelle d’expression en entrée, la fonction n’a aucun effet.Si
input_exprouscale_exprest 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 | +----------+-------+----------------+