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