Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak dodać wiodące zero do liczby w zapytaniu Oracle SQL?

Możesz to zrobić na dwa sposoby.

Metoda 1

Korzystanie z LPADa .

Na przykład

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>

Klauzula WITH służy tylko do tworzenia przykładowych danych do demonstracji, w rzeczywistym zapytaniu po prostu wykonaj:

lpad(removal_count, 5, '0')

Pamiętaj, liczba nie może mieć początkowych zer . Wynikiem powyższego zapytania jest ciąg a nie liczba .

Metoda 2

Korzystanie z TO_CHAR i model formatu:

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>

Aktualizacja :Aby uniknąć dodatkowej spacji wiodącej używanej jako znak minus, użyj FM w TO_CHAR format:

Bez FM:

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

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

Z FM:

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

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zliczanie liczby wystąpień znaku w Oracle SQL

  2. różnica między planem wyjaśnienia a planem wykonania

  3. Jak uniknąć błędów mutacji tabel

  4. Dzielenie ciągu na wiele wierszy w Oracle

  5. Jak zaktualizować Oracle Clob za pomocą JDBC?