Passer au contenu principal
La documentation ci-dessous est générée à partir de la table système system.functions

ceil

Introduit dans : v1.1.0 Comme floor, mais renvoie le plus petit nombre arrondi qui est supérieur ou égal à x. Si l’arrondi provoque un dépassement de capacité (par exemple, ceiling(255, -1)), le résultat est indéfini. Syntaxe
ceiling(x[, N])
Alias : ceiling Arguments
  • x — La valeur à arrondir. Float* ou Decimal* ou (U)Int*
  • N — Facultatif. Le nombre de décimales auquel arrondir. La valeur par défaut est zéro, ce qui correspond à un arrondi à l’entier. Peut être négatif. (U)Int*
Valeur renvoyée Renvoie un nombre arrondi du même type que x. Float* ou Decimal* ou (U)Int* Exemples Utilisation de base
Query
SELECT ceiling(123.45, 1) AS rounded
Response
┌─rounded─┐
│   123.5 │
└─────────┘
Précision négative
Query
SELECT ceiling(123.45, -1)
Response
┌─ceiling(123.45, -1)─┐
│                 130 │
└─────────────────────┘

floor

Introduit dans : v1.1.0 Renvoie le plus grand nombre arrondi inférieur ou égal à x, où ce nombre arrondi est un multiple de 1 / 10 * N, ou le nombre le plus proche du type de données approprié si 1 / 10 * N n’est pas exact. Les arguments entiers peuvent être arrondis avec un argument N négatif. Avec un N non négatif, la fonction renvoie x. Si l’arrondi provoque un dépassement de capacité (par exemple, floor(-128, -1)), le résultat est indéfini. Syntaxe
floor(x[, N])
Arguments
  • x — La valeur à arrondir. Float* ou Decimal* ou (U)Int*
  • N — Facultatif. Le nombre de décimales auquel arrondir. La valeur par défaut est zéro, ce qui signifie un arrondi à l’entier. Peut être négatif. (U)Int*
Valeur renvoyée Renvoie un nombre arrondi du même type que x. Float* ou Decimal* ou (U)Int* Exemples Exemple d’utilisation
Query
SELECT floor(123.45, 1) AS rounded
Response
┌─rounded─┐
│   123.4 │
└─────────┘
Précision négative
Query
SELECT floor(123.45, -1)
Response
┌─floor(123.45, -1)─┐
│               120 │
└───────────────────┘

round

Introduit dans : v1.1.0 Arrondit une valeur à un nombre donné de décimales N.
  • Si N > 0, la fonction arrondit à droite de la virgule.
  • Si N < 0, la fonction arrondit à gauche de la virgule.
  • Si N = 0, la fonction arrondit à l’entier le plus proche.
La fonction renvoie le nombre le plus proche à l’ordre spécifié. Si la valeur d’entrée est à égale distance de deux nombres voisins, la fonction utilise l’arrondi bancaire pour les entrées Float* et arrondit en s’éloignant de zéro pour les autres types numériques (Decimal*). Si l’arrondi provoque un dépassement de capacité (par exemple, round(255, -1)), le résultat est indéfini. Syntaxe
round(x[, N])
Arguments
  • x — Un nombre à arrondir. Float* ou Decimal* ou (U)Int*
  • N — Facultatif. Le nombre de décimales auquel arrondir. La valeur par défaut est 0. (U)Int*
Valeur renvoyée Renvoie un nombre arrondi du même type que x. Float* ou Decimal* ou (U)Int* Exemples Entrées de type Float
Query
SELECT number / 2 AS x, round(x) FROM system.numbers LIMIT 3;
Response
┌───x─┬─round(x)─┐
│   0 │        0 │
│ 0.5 │        0 │
│   1 │        1 │
└─────┴──────────┘
Entrées de type Decimal
Query
SELECT cast(number / 2 AS  Decimal(10,4)) AS x, round(x) FROM system.numbers LIMIT 3;
Response
┌───x─┬─round(x)─┐
│   0 │        0 │
│ 0.5 │        1 │
│   1 │        1 │
└─────┴──────────┘

roundAge

Introduit dans : v1.1.0 Prend un nombre représentant l’âge d’une personne, le compare aux tranches d’âge standard et renvoie soit la valeur la plus élevée, soit la valeur la plus basse de la tranche dans laquelle il se situe.
  • Renvoie 0, pour age < 1.
  • Renvoie 17, pour 1 ≤ age ≤ 17.
  • Renvoie 18, pour 18 ≤ age ≤ 24.
  • Renvoie 25, pour 25 ≤ age ≤ 34.
  • Renvoie 35, pour 35 ≤ age ≤ 44.
  • Renvoie 45, pour 45 ≤ age ≤ 54.
  • Renvoie 55, pour age ≥ 55.
Syntaxe
roundAge(num)
Arguments
  • age — Un nombre représentant un âge en années. (U)Int* ou Float*
Valeur renvoyée Renvoie l’âge le plus élevé ou le plus bas de la plage dans laquelle se situe age. UInt8 Exemples Exemple d’utilisation
Query
SELECT *, roundAge(*) FROM system.numbers WHERE number IN (0, 5, 20, 31, 37, 54, 72);
Response
┌─number─┬─roundAge(number)─┐
│      0 │                0 │
│      5 │               17 │
│     20 │               18 │
│     31 │               25 │
│     37 │               35 │
│     54 │               45 │
│     72 │               55 │
└────────┴──────────────────┘

roundBankers

Introduit dans : v20.1.0 Arrondit un nombre à la position décimale spécifiée N. Si le nombre à arrondir se trouve exactement à mi-chemin entre deux nombres, la fonction utilise une méthode d’arrondi appelée arrondi bancaire, qui est la méthode d’arrondi par défaut des nombres à virgule flottante selon la norme IEEE 754.
  • Si N > 0, la fonction arrondit à droite de la virgule
  • Si N < 0, la fonction arrondit à gauche de la virgule
  • Si N = 0, la fonction arrondit à l’entier le plus proche
Notes
  • Lorsque le nombre à arrondir se trouve exactement à mi-chemin entre deux nombres, il est arrondi vers le chiffre pair le plus proche à la position décimale spécifiée. Par exemple : 3.5 s’arrondit à 4, 2.5 s’arrondit à 2.
  • La fonction round applique le même arrondi aux nombres à virgule flottante.
  • La fonction roundBankers arrondit également les entiers de la même manière, par exemple roundBankers(45, -1) = 40.
  • Dans les autres cas, la fonction arrondit les nombres à l’entier le plus proche.
Utilisez l’arrondi bancaire pour les additions et les soustractionsL’arrondi bancaire permet de réduire l’effet de l’arrondi sur les résultats de l’addition ou de la soustraction de ces nombres.Par exemple, additionnez les nombres 1.5, 2.5, 3.5, 4.5 avec différents types d’arrondi :
  • Sans arrondi : 1.5 + 2.5 + 3.5 + 4.5 = 12.
  • Arrondi bancaire : 2 + 2 + 4 + 4 = 12.
  • Arrondi à l’entier le plus proche : 2 + 3 + 4 + 5 = 14.
Syntaxe
roundBankers(x[, N])
Arguments
  • x — Nombre à arrondir. (U)Int* ou Decimal* ou Float*
  • [, N] — Facultatif. Le nombre de décimales auquel arrondir. La valeur par défaut est 0. (U)Int*
Valeur renvoyée Renvoie une valeur arrondie selon la méthode de l’arrondi bancaire. (U)Int* ou Decimal* ou Float* Exemples Utilisation de base
Query
SELECT number / 2 AS x, roundBankers(x, 0) AS b FROM system.numbers LIMIT 10
Response
┌───x─┬─b─┐
│   0 │ 0 │
│ 0.5 │ 0 │
│   1 │ 1 │
│ 1.5 │ 2 │
│   2 │ 2 │
│ 2.5 │ 2 │
│   3 │ 3 │
│ 3.5 │ 4 │
│   4 │ 4 │
│ 4.5 │ 4 │
└─────┴───┘

roundDown

Introduit dans : v20.1.0 Arrondit un nombre vers le bas à un élément du tableau spécifié. Si la valeur est inférieure à la borne minimale, cette dernière est renvoyée. Syntaxe
roundDown(num, arr)
Arguments Valeur renvoyée Renvoie un nombre arrondi à l’inférieur à une valeur de arr. Si la valeur est inférieure à la borne la plus basse, cette borne est renvoyée. (U)Int* ou Float* Exemples Exemple d’utilisation
Query
SELECT *, roundDown(*, [3, 4, 5]) FROM system.numbers WHERE number IN (0, 1, 2, 3, 4, 5)
Response
┌─number─┬─roundDown(number, [3, 4, 5])─┐
│      0 │                            3 │
│      1 │                            3 │
│      2 │                            3 │
│      3 │                            3 │
│      4 │                            4 │
│      5 │                            5 │
└────────┴──────────────────────────────┘

roundDuration

Introduit dans : v1.1.0 Arrondit un nombre à la durée couramment utilisée inférieure la plus proche parmi les valeurs suivantes : 1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000. Si le nombre est inférieur à un, la fonction renvoie 0. Syntaxe
roundDuration(num)
Arguments
  • num — Un nombre à arrondir à l’une des valeurs de l’ensemble des durées courantes. (U)Int* ou Float*
Valeur renvoyée Renvoie 0 pour num < 1. Sinon, l’une des valeurs suivantes : 1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000. UInt16 Exemples Exemple d’utilisation
Query
SELECT *, roundDuration(*) FROM system.numbers WHERE number IN (0, 9, 19, 47, 101, 149, 205, 271, 421, 789, 1423, 2345, 4567, 9876, 24680, 42573)
Response
┌─number─┬─roundDuration(number)─┐
│      0 │                     0 │
│      9 │                     1 │
│     19 │                    10 │
│     47 │                    30 │
│    101 │                    60 │
│    149 │                   120 │
│    205 │                   180 │
│    271 │                   240 │
│    421 │                   300 │
│    789 │                   600 │
│   1423 │                  1200 │
│   2345 │                  1800 │
│   4567 │                  3600 │
│   9876 │                  7200 │
│  24680 │                 18000 │
│  42573 │                 36000 │
└────────┴───────────────────────┘

roundToExp2

Introduit dans : v1.1.0 Arrondit un nombre à la puissance de deux entière non négative inférieure la plus proche. Si le nombre est inférieur à un, la fonction renvoie 0. Syntaxe
roundToExp2(num)
Arguments Valeur renvoyée Renvoyer num arrondi à la plus grande puissance de deux (entière non négative) inférieure ou égale à num, sinon 0 si num < 1. (U)Int* ou Float* Exemples Exemple d’utilisation
Query
SELECT *, roundToExp2(*) FROM system.numbers WHERE number IN (0, 2, 5, 10, 19, 50)
Response
┌─number─┬─roundToExp2(number)─┐
│      0 │                   0 │
│      2 │                   2 │
│      5 │                   4 │
│     10 │                   8 │
│     19 │                  16 │
│     50 │                  32 │
└────────┴─────────────────────┘

trunc

Introduit dans : v1.1.0 Comme floor, mais renvoie le nombre arrondi dont la valeur absolue est la plus grande tout en restant inférieure ou égale à celle de x. Syntaxe
truncate(x[, N])
Alias : truncate Arguments
  • x — La valeur à arrondir. Float* ou Decimal* ou (U)Int*
  • N — Facultatif. Le nombre de décimales auquel arrondir. La valeur par défaut est zéro, ce qui correspond à un arrondi à l’entier. (U)Int*
Valeur renvoyée Renvoie un nombre arrondi du même type que x. Float* ou Decimal* ou (U)Int* Exemples Utilisation de base
Query
SELECT truncate(123.499, 1) AS res;
Response
┌───res─┐
│ 123.4 │
└───────┘
Dernière modification le 25 juin 2026