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

Cara Memformat Angka di PostgreSQL

Saat bekerja dengan Postgres, Anda dapat menggunakan to_char() berfungsi untuk menampilkan angka dalam format tertentu.

Cara kerjanya adalah Anda memberikan dua argumen. Argumen pertama adalah nomor yang akan diformat. Argumen kedua menentukan bagaimana formatnya.

Nilai yang dikembalikan adalah teks .

Bergantung pada kebutuhan Anda, Anda mungkin lebih suka mengonversi nomor ke tipe data yang sesuai, misalnya menggunakan cast() fungsi.

Contoh kedua metode di bawah ini.

Contoh

Berikut adalah contoh dasar untuk didemonstrasikan.

SELECT to_char(10, '99.99');

Hasil:

10.00

9 s sebenarnya memiliki arti khusus dalam konteks ini. Karakter ini adalah salah satu pola template yang valid yang terdiri dari string format Anda saat memformat angka.

Dalam kasus 9 , ini menentukan posisi digit, tetapi jika itu adalah nol di depan maka akan diganti dengan spasi, sedangkan jika itu adalah nol di belakang dan mode pengisian ditentukan maka itu akan dihapus.

Jika saya menghapus bagian desimal dan pecahan detik, saya mendapatkan hasil yang berbeda.

SELECT to_char(10, '99');

Hasil:

10

Lepaskan Angka Nol Terdepan

Anda dapat mengganti 9 dengan 0 jika Anda ingin menekan angka nol di depan dan di belakang, meskipun tidak signifikan.

Berikut adalah contoh yang menunjukkan perbedaan antara keduanya.

SELECT 
  to_char(0010, '9999') AS "9999",
  to_char(0010, '0000') AS "0000";

Hasil:

 9999  | 0000  
-------+-------
    10 |  0010

Pola Template

Seperti yang terlihat pada contoh sebelumnya, format string terdiri dari satu atau lebih pola template.

Misalnya, 9999 adalah format string yang terdiri dari empat pola template – masing-masing adalah 9 .

Tempat desimal adalah pola template lain.

Saya bisa menggunakan D bukannya tempat desimal. Itu menggunakan lokal saat ini untuk pemformatan sebenarnya.

SELECT 
  to_char(10, '99.99') AS "99.99",
  to_char(10, '99D99') AS "99D99";

Hasil:

 99.99  | 99D99  
--------+--------
  10.00 |  10.00

Untuk daftar lengkap pola dan pengubah template, lihat Pola &Pengubah Template untuk Pemformatan Numerik di Postgres.

Pengubah Pola Template

Ada juga beberapa pengubah yang dapat digunakan bersama dengan pola template. Ini mengubah cara output diformat, tergantung pada pengubah yang digunakan.

Secara khusus, ada tiga pengubah yang dapat digunakan dengan pemformatan numerik.

Pengubah Deskripsi
FM awalan mode isi (menekan angka nol yang tertinggal dan mengisi kosong)
TH akhiran akhiran nomor urut huruf besar
th akhiran akhiran angka urut huruf kecil

Perhatikan bahwa yang pertama ditambahkan sebagai awalan pada pola templat dan dua lainnya ditambahkan sebagai akhiran.

Bilangan Ordinal

Persyaratan umum adalah mengubah angka menjadi ordinalnya. Kita dapat menggunakan TH atau th untuk itu, tergantung kita mau sufiksnya huruf besar atau kecil.

Ini contohnya.

SELECT to_char(03, 'FM99th');

Hasil:

3rd

Dalam hal ini saya juga menggunakan FM untuk menekan titik kosong dan angka nol yang tertinggal.

Berikut perbandingan antara menggunakan FM dan menghilangkannya:

SELECT 
  to_char(03, '99th') AS "99th",
  to_char(03, 'FM99th') AS "FM99th";

Hasil:

 99th  | FM99th 
-------+--------
   3rd | 3rd

Jika Anda perhatikan dengan seksama, kolom pertama memiliki bagian depan yang kosong, sedangkan kolom kedua tidak.

Mata Uang

Persyaratan umum lainnya adalah menampilkan angka dalam mata uang tertentu.

Dalam hal ini, kita dapat menggunakan L pola template untuk menampilkan simbol mata uang lokal.

SELECT to_char(03, 'LFM99D00');

Hasil:

$3.00

Nomor yang Ditandatangani

Ada juga pola template untuk nomor yang ditandatangani.

Ini contohnya.

SELECT to_char(27, 'S99');

Hasil:

+27

Di sini, saya menggunakan S untuk menambahkan tanda sadar-lokal yang ditambatkan ke nomor tersebut.

Dalam hal ini adalah angka positif. Berikut contoh lain yang menggunakan nilai negatif.

SELECT to_char(-27, 'S99');

Hasil:

-27

Ada beberapa pola templat lain yang dapat digunakan untuk nomor bertanda.

Sebagai contoh, lihat Menambahkan Tanda Plus/Minus ke Angka di Postgres.

Dan seperti yang disebutkan, lihat Pola &Pengubah Template untuk Pemformatan Numerik di Postgres untuk daftar lengkap pengubah template yang dapat Anda gunakan saat memformat angka.

Jenis Data

Seperti disebutkan, to_char() fungsi menampilkan hasilnya sebagai teks .

Bergantung pada kebutuhan Anda, Anda mungkin merasa lebih baik untuk mengonversi nomor ke tipe data yang lebih sesuai.

Berikut adalah contoh yang mengonversi angka menjadi data uang ketik.

SELECT cast(10 as money);

Hasil:

$10.00

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa saya tidak dapat mengecualikan kolom dependen dari `GROUP BY` saat saya mengagregasi berdasarkan kunci?

  2. Kesalahan saat menghubungkan ke postgresql menggunakan sqlalchemy

  3. Menggunakan Replikasi Logis PostgreSQL untuk Mempertahankan Server TEST Baca/Tulis yang Selalu Terkini

  4. Setel ulang kunci utama PostgreSQL ke 1

  5. Pilih (ambil) semua catatan dari beberapa skema menggunakan Postgres