Masalah:
Anda ingin mengonversi string menjadi nilai desimal di PostgreSQL.
Mari kita ubah nilai dalam string menjadi tipe data DECIMAL.
Solusi 1:
Kami akan menggunakan ::operator. Inilah kueri yang akan Anda tulis:
SELECT ' 5800.79 '::DECIMAL;
Ini hasilnya:
numerik |
---|
5800.79 |
Seperti yang Anda perhatikan, spasi awal dan akhir telah dihapus.
Diskusi:
Gunakan operator ::untuk mengonversi string yang berisi nilai numerik ke tipe data DECIMAL. Dalam contoh kami, kami mengonversi string ' 5800.79 ' menjadi 5800.79 (nilai DECIMAL).
Operator ini digunakan untuk mengkonversi antara tipe data yang berbeda. Ini sangat populer di dalam PostgreSQL. Anda juga dapat menggunakan operator SQL standar, CAST()
, alih-alih ::
operator.
Solusi 2:
SELECT CAST(' 5800.79 ' AS DECIMAL );
Ini hasilnya:
numerik |
---|
5800.79 |
Perhatikan bahwa CAST()
, seperti ::
operator, menghapus spasi tambahan di awal dan akhir string sebelum mengubahnya menjadi angka.
Basis data PostgreSQL menyediakan satu cara lagi untuk mengonversi. Gunakan TO_NUMBER()
berfungsi jika Anda perlu mengonversi string yang lebih rumit. Fungsi ini membutuhkan dua argumen:string yang akan dikonversi dan format mask yang menunjukkan bagaimana setiap karakter dalam string harus ditafsirkan. Lihat contoh di bawah ini:
Solusi 3:
SELECT TO_NUMBER(' 5 800,79- ', 'FM9G999D99S' );
Ini hasilnya:
numerik |
---|
-5800.79 |
String format menjelaskan string yang berisi nomor (nilai input sebagai string). Dalam contoh ini, topeng ini berisi simbol 'FM', yang menghilangkan spasi awal dan akhir. '9' menunjukkan satu digit (dalam contoh kami, 5) dan 'G' mewakili sekelompok digit (dalam contoh kami, satu spasi menunjukkan sekelompok ribuan).
Selanjutnya, '999' menunjukkan tiga digit lagi (800).
Simbol 'D' menentukan penanda desimal (di sini, titik/titik '.'). Setelah simbol desimal muncul '99', atau dua digit pecahan.
Simbol terakhir, 'S', menentukan penggunaan tanda plus atau minus (angka kita negatif, sehingga mendapat minus).
Berikut adalah simbol yang paling sering digunakan untuk topeng ini:
simbol | deskripsi |
---|---|
FM | nol di depan dan bantalan kosong |
9 | satu angka |
. | titik desimal lokal |
G | pemisah grup |
D | pemisah desimal lokal |
S | tanda minus atau plus |
L | simbol mata uang lokal |
Anda dapat menemukan informasi pemformatan numerik lainnya di dokumentasi PostgreSQL.