chaque fois que je veux arrondir à 2 décimales quand il s'agit de zéros, il ne veut pas l'arrondir ... comment pourrais-je l'arrondir à 2 décimales avec des zéros à la fin qui me donnerait 92,00 au lieu de seulement 92 ???
SELECT ROUND(COLUMN_NAME,2) FROM ....
ça me donne
COLUMN_NAME
92
mais je veux
COLUMN_NAME
92.00
J'ai utilisé TO_CHAR et cela a fonctionné
ROUND(TO_CHAR(COLUMN_NAME),2)
merci les gars!
vous pouvez essayer la fonction TO_CHAR pour convertir le résultat
par exemple.
SELECT TO_CHAR(92, '99.99') AS RES FROM DUAL
SELECT TO_CHAR(92.258, '99.99') AS RES FROM DUAL
J'espère que ça aide
Essayez d'éviter le formatage dans votre requête. Vous devez renvoyer vos données dans un format brut et laisser l'application réceptrice (par exemple, un service de reporting ou une application utilisateur final) effectuer le formatage, c'est-à-dire l'arrondi, etc.
Le formatage des données dans le serveur rend plus difficile (voire impossible) le traitement ultérieur de vos données. Vous voulez généralement exporter la table ou faire une agrégation, comme la somme, la moyenne, etc. Comme les nombres arrivent sous forme de chaînes (varchar), il n'y a généralement pas de moyen facile de les traiter davantage. Certains concepteurs de rapports refuseront même d'offrir la possibilité d'agréger ces "nombres".
De plus, l'utilisateur final verra le formatage spécifique au pays du serveur au lieu de son propre PC.
Tenez également compte des problèmes d'arrondi. Si vous arrondissez les valeurs sur le serveur et effectuez encore quelques calculs (en supposant que le client est en mesure de rétablir les chaînes de nombres en un nombre), vous finirez par obtenir des résultats erronés.
Essayez d'utiliser la commande COLUMN avec l'option FORMAT pour cela:
COLUMN COLUMN_NAME FORMAT 99.99
SELECT COLUMN_NAME FROM ....
Cela fonctionne aussi. L'instruction ci-dessous arrondit à deux décimales.
SELECT ROUND (92.258,2) parmi dual;