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