Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

2 Cara Memformat Angka dengan Nol Awal di Oracle

Saat menggunakan Oracle Database untuk memformat angka agar memiliki nol di depan, kita perlu mengonversinya menjadi string dan memformatnya sesuai dengan itu.

Anda dapat menggunakan TO_CHAR(number) berfungsi untuk memformat angka dengan angka nol di depan.

Dan mungkin fakta yang kurang diketahui, adalah bahwa Anda juga dapat menggunakan LPAD() berfungsi untuk mengisi angka dengan nol di depan.

TO_CHAR() Fungsi

Saat menggunakan the TO_CHAR(number) fungsi, gunakan 0 elemen format untuk menyertakan nol di depan dan/atau di belakang.

Contoh:

SELECT TO_CHAR(7, 'fm000')
FROM DUAL;

Hasil:

007

Ini dia jika dibandingkan dengan 9 elemen format:

SELECT 
    TO_CHAR(7, 'fm999') AS "9",
    TO_CHAR(7, 'fm000') AS "0"
FROM DUAL;

Hasil:

   9      0 
____ ______ 
7    007   

Jumlah nol di depan ditentukan oleh jumlah 0 elemen format dan jumlah digit angka:

SELECT 
    TO_CHAR(77, 'fm0') AS "r1",
    TO_CHAR(77, 'fm00000') AS "r2",
    TO_CHAR(777, 'fm00000') AS "r3",
    TO_CHAR(7777, 'fm00000') AS "r4",
    TO_CHAR(77777, 'fm00000') AS "r5"
FROM DUAL;

Hasil:

   r1       r2       r3       r4       r5 
_____ ________ ________ ________ ________ 
##    00077    00777    07777    77777   

fm pengubah format menekan setiap padding awal dan/atau akhir yang mungkin disertakan dalam hasil. Misalnya, ketika angkanya negatif, tanda minus diawali. Tetapi ketika angkanya positif, tidak ada tanda yang disertakan, dan sebuah spasi muncul di mana tanda plus seharusnya berada.

Berikut ini contoh untuk menunjukkannya:

SELECT 
    TO_CHAR(-7, '000') AS "Minus Sign",
    TO_CHAR(7, '000') AS "Padded",
    TO_CHAR(7, 'fm000') AS "Not Padded"
FROM DUAL;

Hasil:

   Minus Sign    Padded    Not Padded 
_____________ _________ _____________ 
-007           007      007          

LPAD() Fungsi

Sebagai alternatif, kita dapat menggunakan LPAD() berfungsi untuk memformat angka dengan angka nol di depan.

Contoh:

SELECT LPAD(7, 3, '0')
FROM DUAL;

Hasil:

007

Contoh lain:

SELECT 
    LPAD(77, 1, '0') AS "r1",
    LPAD(77, 5, '0') AS "r2",
    LPAD(777, 5, '0') AS "r3",
    LPAD(7777, 5, '0') AS "r4",
    LPAD(77777, 5, '0') AS "r5"
FROM DUAL;

Hasil:

   r1       r2       r3       r4       r5 
_____ ________ ________ ________ ________ 
7     00077    00777    07777    77777   

Salah satu manfaat yang LPAD() memiliki lebih dari metode sebelumnya adalah bahwa kita dapat mengawali hasil karakter lain – tidak perlu menjadi nol di depan.

SELECT 
    LPAD(77, 1, '.') AS "r1",
    LPAD(77, 5, '.') AS "r2",
    LPAD(777, 5, '.') AS "r3",
    LPAD(7777, 5, '.') AS "r4",
    LPAD(77777, 5, '.') AS "r5"
FROM DUAL;

Hasil:

   r1       r2       r3       r4       r5 
_____ ________ ________ ________ ________ 
7     ...77    ..777    .7777    77777   

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. hubungkan dengan klausa di regex_substr

  2. Cara Menghapus Nol Awal Dari Tanggal di Oracle

  3. Oracle mendapatkan kunci asing

  4. bagaimana cara memasukkan tanggal dan waktu di oracle?

  5. Hasil tidak berurutan dalam SQL