Calculs et arrondis mathématiques
Les fonctions numériques permettent d'effectuer des calculs mathématiques, d'arrondir des valeurs, et de manipuler des nombres dans vos requêtes SQL.
SELECT salaire,
ROUND(salaire, 0) AS salaire_arrondi,
ROUND(salaire, -3) AS salaire_arrondi_millier
FROM EMPLOYES;
ROUND(nombre, précision) arrondit au nombre de décimales spécifié.
SELECT salaire,
TRUNC(salaire, 0) AS salaire_tronque,
TRUNC(salaire, -3) AS salaire_tronque_millier
FROM EMPLOYES;
TRUNC fonctionne comme ROUND mais sans arrondir (coupe simplement les décimales).
SELECT emp_id,
MOD(emp_id, 2) AS est_pair,
salaire,
MOD(salaire, 1000) AS reste_millier
FROM EMPLOYES;
MOD(dividende, diviseur) retourne le reste de la division.
SELECT salaire,
CEIL(salaire / 1000) AS milliers_sup,
FLOOR(salaire / 1000) AS milliers_inf
FROM EMPLOYES;
CEIL arrondit vers le haut, FLOOR vers le bas.
SELECT salaire - 50000 AS difference,
ABS(salaire - 50000) AS difference_absolue
FROM EMPLOYES;
SELECT POWER(2, 3) AS deux_puissance_trois,
SQRT(16) AS racine_de_16
FROM DUAL;
SELECT salaire - 50000 AS difference,
SIGN(salaire - 50000) AS signe
FROM EMPLOYES;
Retourne -1 (négatif), 0 (zéro), ou 1 (positif).
-- Calculer une augmentation de 7.5% arrondie au millier supérieur
SELECT nom,
salaire,
CEIL(salaire * 1.075 / 1000) * 1000 AS nouveau_salaire
FROM EMPLOYES;
-- Identifier les employés avec un salaire pair ou impair
SELECT nom,
salaire,
CASE MOD(salaire, 2)
WHEN 0 THEN 'Pair'
ELSE 'Impair'
END AS parite
FROM EMPLOYES;
SELECT salaire / NULLIF(commission, 0)
Démontre la différence entre ROUND (arrondit), TRUNC (coupe), et CEIL (arrondit vers le haut). Les précisions négatives permettent d'arrondir aux centaines, milliers, etc.
Combine plusieurs fonctions : division pour le ratio, multiplication par 100 pour le pourcentage, ROUND pour 2 décimales. MOD montre le reste après avoir enlevé les milliers.