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

Cara Mengonversi String ke Nilai Numerik di PostgreSQL

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mencari di indeks ekspresi

  2. Bandingkan varchar dengan char

  3. Cara Membuat Bilangan Ordinal di PostgreSQL

  4. Kolom Postgresql Tidak Ditemukan, Tetapi Ditampilkan di Deskripsi

  5. instal permata pg tidak dapat mengikat ke libpq