PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

2 Cara Menambahkan Angka Nol di PostgreSQL

Di PostgreSQL, kita dapat menggunakan TO_CHAR() berfungsi untuk menambahkan angka nol di depan suatu bilangan. Fungsi mengonversi angka menjadi string, menggunakan format (opsional) yang kami tentukan.

Pilihan lainnya adalah dengan menggunakan LPAD() berfungsi untuk mengisi angka dengan nol di depan.

TO_CHAR() Fungsi

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

Contoh:

SELECT TO_CHAR(7, 'fm000');

Hasil:

007

Ini dia jika dibandingkan dengan 9 elemen format:

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

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";

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";

Hasil:

 Minus Sign | Padded | Not Padded 
------------+--------+------------
 -007       |  007   | 007

LPAD() Fungsi

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

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

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";

Hasil:

 r1 |  r2   |  r3   |  r4   |  r5   
----+-------+-------+-------+-------
 7  | 00077 | 00777 | 07777 | 77777

Perhatikan bahwa fungsi ini mengharuskan nomor dilewatkan sebagai string. Oleh karena itu, kita perlu mengonversi angka menjadi string terlebih dahulu. Karakter pengisi juga harus berupa string.

Jadi kita mungkin harus melakukan sesuatu seperti ini:

SELECT LPAD(CAST(7 AS varchar), 3, '0');

Hasil:

007

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";

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. Upgrade Berbasis Pemicu Kustom untuk PostgreSQL

  2. Kolom dinamis dalam pernyataan SELECT postgres

  3. Bagaimana POSITION() Bekerja di PostgreSQL

  4. Ekstrak tanggal (yyyy/mm/dd) dari stempel waktu di PostgreSQL

  5. Simpan hasil kueri dalam variabel menggunakan di PL/pgSQL