sql >> Database >  >> RDS >> Oracle

Hoe voeg ik een voorloopnul toe aan een getal in een Oracle SQL-query?

Je zou het op twee manieren kunnen doen.

Methode 1

LPAD gebruiken .

Bijvoorbeeld,

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>

De WITH-component is alleen bedoeld om voorbeeldgegevens voor een demo te bouwen, in uw eigenlijke zoekopdracht doet u gewoon:

lpad(removal_count, 5, '0')

Onthoud, een nummer mag geen voorloopnullen hebben . De uitvoer van bovenstaande zoekopdracht is een tekenreeks en niet een nummer .

Methode 2

TO_CHAR gebruiken en formaatmodel:

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>

Bijwerken :Gebruik FM . om de extra voorloopspatie die wordt gebruikt voor het minteken te vermijden in de TO_CHAR formaat:

Zonder FM:

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

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

Met FM:

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

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


  1. PostgreSQL Connection Pooling:Part 3 – Pgpool-II

  2. gebruik de opdracht database_name in PostgreSQL

  3. Hoe krijg ik een opgeslagen procedure-uitvoerparameter die een array is om te werken?

  4. MySQL InnoDB Storage Engine-ondersteuning inschakelen in XAMPP-installatie