Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment ajouter un zéro non significatif dans un nombre dans une requête Oracle SQL ?

Vous pouvez le faire de deux manières.

Méthode 1

Utilisation de LPAD .

Par exemple,

SQL> WITH DATA(num) AS(
  2  SELECT 540 FROM dual UNION ALL
  3  SELECT 60 FROM dual UNION ALL
  4  SELECT 2 FROM dual
  5  )
  6  SELECT num, lpad(num, 5, '0') num_pad FROM DATA;

       NUM NUM_P
---------- -----
       540 00540
        60 00060
         2 00002

SQL>

La clause WITH sert uniquement à créer des exemples de données pour la démonstration, dans votre requête actuelle, faites simplement :

lpad(removal_count, 5, '0')

N'oubliez pas, un numéro ne peut pas avoir de zéros non significatifs . La sortie de la requête ci-dessus est une chaîne et non un numéro .

Méthode 2

Utilisation de TO_CHAR et modèle de format :

SQL> WITH DATA(num) AS(
  2  SELECT 540 FROM dual UNION ALL
  3  SELECT 60 FROM dual UNION ALL
  4  SELECT 2 FROM dual
  5  )
  6  SELECT num, to_char(num, '00000') num_pad FROM DATA;

       NUM NUM_PA
---------- ------
       540  00540
        60  00060
         2  00002

SQL>

Mettre à jour  :Pour éviter l'espace supplémentaire utilisé pour le signe moins, utilisez FM dans le TO_CHAR format :

Sans FM :

SELECT TO_CHAR(1, '00000') num_pad,
  LENGTH(TO_CHAR(1, '00000')) tot_len
FROM dual;

NUM_PAD    TOT_LEN
------- ----------
 00001           6 

Avec FM :

SELECT TO_CHAR(1, 'FM00000') num_pad,
  LENGTH(TO_CHAR(1, 'FM00000')) tot_len
FROM dual;

NUM_PAD    TOT_LEN
------- ----------
00001            5