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

Tambahkan Tanda Plus/Minus ke Angka di PostgreSQL

Di PostgreSQL, Anda dapat menggunakan to_char() untuk menampilkan angka dalam format tertentu, termasuk dengan tanda plus atau minus untuk menunjukkan apakah itu angka positif atau negatif.

Untuk melakukannya, gunakan salah satu S , MI , PL , atau SG dalam string format Anda.

Pilihan lain adalah menggunakan PR untuk menyertakan nilai negatif apa pun dalam tanda kurung sudut.

Pola Template untuk Angka Bertanda

Pola templat berikut dapat digunakan untuk menerapkan tanda yang sesuai pada nomor tersebut.

Pola Deskripsi
MI Minus sign pada posisi tertentu (jika angka <0).
PL Tanda plus di posisi yang ditentukan (jika angka> 0).
SG Tanda plus atau minus di posisi yang ditentukan, tergantung apakah angkanya positif atau negatif.
S Tanda berlabuh ke nomor (menggunakan lokal).
PR Ini menutup semua nilai negatif di dalam kurung sudut.

Perhatikan bahwa MI , PL , atau SG adalah ekstensi Postgres (bukan SQL standar).

Contoh menggunakan S

Berikut adalah contoh untuk mendemonstrasikan S pola.

SELECT to_char(1, 'S9');

Hasil:

+1

Dalam hal ini, angkanya positif dan menggunakan lokal saya, tanda plus ditambahkan di depannya.

Ini dia lagi, tetapi dengan tiga nilai; positif, negatif, dan nol.

SELECT 
  to_char(1, 'S9') AS "1",
  to_char(-1, 'S9') AS "-1",
  to_char(0, 'S9') AS "0";

Hasil:

 1  | -1 | 0  
----+----+----
 +1 | -1 | +0

Contoh menggunakan SG

Berikut contoh yang sama dengan SG pola.

SELECT 
  to_char(1, 'SG9') AS "1",
  to_char(-1, 'SG9') AS "-1",
  to_char(0, 'SG9') AS "0";

Hasil:

 1  | -1 | 0  
----+----+----
 +1 | -1 | +0

Contoh menggunakan MI

Inilah yang terjadi jika saya menukar SG dengan MI .

SELECT 
  to_char(1, 'MI9') AS "1",
  to_char(-1, 'MI9') AS "-1",
  to_char(0, 'MI9') AS "0";

Hasil:

 1  | -1 | 0  
----+----+----
  1 | -1 |  0

Hanya angka negatif yang mendapat tanda minus. Bilangan positif dan nol tidak ada tandanya.

Contoh menggunakan PL

Berikut adalah output pada sistem saya ketika saya menggunakan PL .

SELECT 
  to_char(1, 'PL9') AS "1",
  to_char(-1, 'PL9') AS "-1",
  to_char(0, 'PL9') AS "0";

Hasil:

  1  | -1  |  0  
-----+-----+-----
 + 1 |  -1 | + 0

Contoh menggunakan PR

Berikut adalah output pada sistem saya ketika saya menggunakan PR .

SELECT 
  to_char(1, '9PR') AS "1",
  to_char(-1, '9PR') AS "-1",
  to_char(0, '9PR') AS "0";

Hasil:

  1  | -1  |  0  
-----+-----+-----
  1  | <1> |  0 

Perhatikan bahwa PR harus datang setelah 9 .

Inilah yang terjadi jika saya mencoba meletakkannya sebelum 9 :

SELECT 
  to_char(1, 'PR9') AS "1",
  to_char(-1, 'PR9') AS "-1",
  to_char(0, 'PR9') AS "0";

Hasil:

ERROR:  "9" must be ahead of "PR"

SG vs S

Anda mungkin telah memperhatikan bahwa contoh menggunakan SG dan S tampaknya menampilkan hasil yang sama, dan karena itu bertanya-tanya apa perbedaan di antara keduanya.

Perbedaannya adalah S ditambatkan ke nomor sedangkan SG , MI , PL tidak.

S juga menggunakan lokal, jadi tanda sebenarnya yang digunakan akan bergantung pada lokal Anda.

Berikut adalah contoh yang menunjukkan perbedaan penahan.

SELECT 
  to_char(1, 'S999') AS "S",
  to_char(1, 'SG999') AS "SG";

Hasil:

  S   |  SG  
------+------
   +1 | +  1

Dan inilah yang terjadi saat jumlahnya bertambah besar.

SELECT 
  to_char(1, 'S999') AS "S",
  to_char(1, 'SG999') AS "SG",
  to_char(10, 'S999') AS "S",
  to_char(10, 'SG999') AS "SG",
  to_char(100, 'S999') AS "S",
  to_char(100, 'SG999') AS "SG";

Hasil:

  S   |  SG  |  S   |  SG  |  S   |  SG  
------+------+------+------+------+------
   +1 | +  1 |  +10 | + 10 | +100 | +100

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hasilkan SQL untuk memperbarui kunci utama

  2. 2 Cara Menambahkan Angka Nol di PostgreSQL

  3. SQL - Menggabungkan beberapa kueri serupa

  4. PostgreSQL:Enam Potongan yang Tidak Mudah

  5. Kolom 'mary' tidak ada