sql >> Database teknologi >  >> RDS >> Oracle

Hvordan tilføjes indledende nul i et tal i Oracle SQL-forespørgsel?

Du kan gøre det på to måder.

Metode 1

Brug af LPAD .

For eksempel,

SQL> MED 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 FRA DATA; NUM NUM_P--------- ----- 540 00540 60 00060 2 00002SQL>

WITH-klausulen er kun til at bygge eksempeldata til demo, i din faktiske forespørgsel skal du bare gøre:

lpad(removal_count, 5, '0') 

Husk et nummer kan ikke have førende nuller . Outputtet af ovenstående forespørgsel er en streng og ikke et nummer .

Metode 2

Bruger TO_CHAR og formatmodel:

SQL> MED DATA(tal) 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 00002SQL>

Opdater :Brug FM for at undgå det ekstra indledende mellemrum, som bruges til minustegn i TO_CHAR format:

Uden FM:

SELECT TO_CHAR(1, '00000') num_pad, LENGTH(TO_CHAR(1, '00000')) tot_lenFROM dual;NUM_PAD TOT_LEN------- ---------- 00001 6  

Med FM:

SELECT TO_CHAR(1, 'FM00000') num_pad, LENGTH(TO_CHAR(1, 'FM00000')) tot_lenFROM dual;NUM_PAD TOT_LEN------- ---------- 00001 5 


  1. Indsættelse af flere rækker i mysql

  2. Oprettelse eller simulering af todimensionelle arrays i PL/SQL

  3. Ad-hoc forbindelsesstrenge og heterogene forespørgsler til MS Access

  4. Hvordan bruger jeg PostgreSQL JSON(B)-operatorer, der indeholder et spørgsmålstegn? via JDBC