Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm cách nào để thêm số 0 đứng đầu trong một số trong truy vấn SQL của Oracle?

Bạn có thể làm điều đó theo hai cách.

Phương pháp 1

Sử dụng LPAD .

Ví dụ,

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>

Mệnh đề WITH chỉ để xây dựng dữ liệu mẫu cho bản demo, trong truy vấn thực tế của bạn, chỉ cần thực hiện:

lpad(removal_count, 5, '0')

Hãy nhớ rằng, một số không được có số 0 đứng đầu . Đầu ra của truy vấn trên là một chuỗi và không phải là số .

Phương pháp 2

Sử dụng TO_CHAR và định dạng mô hình:

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>

Cập nhật :Để tránh dấu cách thừa ở đầu được sử dụng cho dấu trừ, hãy sử dụng FM trong TO_CHAR định dạng:

Không có FM:

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

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

Với 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. Vấn đề so sánh chuỗi PL / SQL của Oracle

  2. Làm cách nào để kết hợp nhiều hàng thành một danh sách được phân tách bằng dấu phẩy trong Oracle?

  3. Cách kiểm tra phiên bản của nhà cung cấp oracle cho ole-db. Nhà cung cấp OraOLEDB.Oracle

  4. ojdbc14.jar so với ojdbc6.jar

  5. Oracle PL / SQL:Ví dụ UTL_FILE.FCOPY