59 votes

Oracle - Pourquoi le zéro initial d'un nombre disparaît-il lorsqu'on le convertit en TO_CHAR

En Oracle, lors de la conversion d'un nombre avec un zéro initial en caractère, pourquoi le nombre initial disparaît-il ? Cette logique est-elle spécifique à Oracle ou spécifique à SQL ?

Exemple :

SÉLECTIONNER TO_CHAR(0.56) DE DUAL ;
/* Résultat = .56 */

0voto

Essayez ceci pour éviter les limitations de to_char :

SELECT 
regexp_replace(regexp_replace(n,'^-\'||s,'-0'||s),'^\'||s,'0'||s)
FROM (SELECT -0.89 n,RTrim(1/2,5) s FROM dual);

0voto

Essayez le format ci-dessous si le numéro est comme

Par exemple, supposons que le numéro soit 10.1, s'il est appliqué avec le format ci-dessous, il deviendra 10.10

Par exemple, supposons que le numéro est .02, s'il est appliqué avec le format ci-dessous, il deviendra 0.02

Par exemple, supposons que le numéro soit 0.2, s'il est appliqué avec le format ci-dessous, il deviendra 0.20

to_char(round(to_number(nom_colonne)/10000000,2),'999999999990D99') comme nom_colonne

0voto

Matheus Mendes Points 21

Si votre pays supporte la virgule pour les décimales, utilisez ceci :

SELECT regexp_replace(
            regexp_replace(to_char(VOTRE_NOMBRE), '^,', '0,'), -- Positifs
            '^-,', '-0,') -- Négatifs

Sinon, si votre pays supporte les points pour les décimales, utilisez ceci :

SELECT regexp_replace(
            regexp_replace(to_char(VOTRE_NOMBRE), '^.', '0.'), -- Positifs
            '^-.', '-0.') -- Négatifs

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X