Berikut adalah 4 cara untuk mengonversi angka menjadi nilai persentase di SQL Server.
Sebenarnya, kami tidak benar-benar "mengubahnya" menjadi persentase. Kami memformat angka sebagai persentase. Tetapi untuk melakukan itu, kita perlu mengonversi angka dari tipe data numerik menjadi string.
Berikut adalah 4 cara untuk melakukannya.
Contoh 1 – Fungsi FORMAT()
Pilihan yang paling jelas untuk digunakan adalah FORMAT()
fungsi. Ini memungkinkan Anda untuk menampilkan nomor dan tanggal dalam format tertentu.
Berikut adalah contoh penggunaan fungsi ini untuk menampilkan angka sebagai persentase:
SELECT FORMAT(55, 'P') Result;
Hasil:
+------------+ | Result | |------------| | 5,500.00 % | +------------+
Perhatikan bahwa empat angka nol ditambahkan ke nilai kita (dua sebelum koma, dan dua setelahnya).
Berikut ini akan diperlukan untuk membuat 55 persen ini:
SELECT FORMAT(.55, 'P') Result;
Hasil:
+----------+ | Result | |----------| | 55.00 % | +----------+
Jika angkanya adalah nilai persentase sebenarnya yang Anda inginkan, Anda dapat melakukan ini:
SELECT FORMAT(55 * .01, 'P') Result;
Hasil:
+----------+ | Result | |----------| | 55.00 % | +----------+
Anda juga dapat menghapus bagian pecahan dengan menambahkan nol ke penentu format:
SELECT FORMAT(.55, 'P0') Result;
Hasil:
+----------+ | Result | |----------| | 55 % | +----------+
Jika perlu, Anda juga dapat menambahkan lebih banyak tempat desimal:
SELECT FORMAT(.55123456, 'P7') Result;
Hasil:
+--------------+ | Result | |--------------| | 55.1234560 % | +--------------+
Contoh 2 – Fungsi CONVERT()
Sebagai alternatif, Anda dapat menggunakan CONVERT()
berfungsi untuk mengubah angka menjadi string, lalu menambahkan tanda persentase di akhir.
Ini mungkin tampak sedikit tidak perlu mengingat betapa mudahnya contoh sebelumnya membuatnya, namun, FORMAT()
fungsi hanya diperkenalkan di SQL Server 2012. Oleh karena itu, ini adalah bagaimana Anda perlu melakukannya jika Anda menggunakan versi SQL Server yang lebih lama.
SELECT CONVERT(VARCHAR(4), 55) + ' %' Result;
Hasil:
+----------+ | Result | |----------| | 55 % | +----------+
Tentu saja, jika nomor Anda seperti .55
dan Anda membutuhkannya untuk ditampilkan sebagai 55,00%, maka Anda selalu dapat mengalikannya dengan 100:
SELECT CONVERT(VARCHAR(6), 0.55 * 100) + ' %' Result;
Hasil:
+----------+ | Result | |----------| | 55.00 % | +----------+
Dalam hal ini saya juga meningkatkan ukuran varchar tipe data untuk memenuhi karakter tambahan.
Anda juga dapat menghapus bagian pecahan dengan menggunakan LEFT()
fungsi:
SELECT CONVERT(VARCHAR(6), LEFT(0.55 * 100, 2)) + ' %' Result;
Hasil:
+----------+ | Result | |----------| | 55 % | +----------+
Meskipun Anda harus berhati-hati saat melakukan ini, karena nilai sebenarnya dapat bervariasi menjadi lebih atau kurang dari 2. Dalam hal ini, Anda dapat menggunakan TRIM()
berfungsi untuk memangkas angka nol di depan dan/atau titik akhir:
SELECT CONVERT(VARCHAR(6), TRIM('0,.' FROM LEFT(0.55 * 100, 3))) + ' %' Result;
Hasil:
+----------+ | Result | |----------| | 55 % | +----------+
Namun, ini tidak sempurna, dan FORMAT()
function jelas memberikan lebih banyak fleksibilitas dengan kode minimum.
Contoh 3 – Fungsi CAST()
Sebagai alternatif, kita dapat menggunakan CAST()
berfungsi untuk melakukan hal yang sama seperti contoh sebelumnya:
SELECT CAST(55 AS VARCHAR(4)) + ' %' Result;
Hasil:
+----------+ | Result | |----------| | 55 % | +----------+
Perhatikan bahwa CAST()
dan CONVERT()
menggunakan sintaks yang sedikit berbeda. Dalam kasus CAST()
nilai yang akan dilemparkan didahulukan, sedangkan sebaliknya dengan CONVERT()
.
Contoh 4 – CONCAT()
Fungsi
Anda juga dapat menggunakan CONCAT()
berfungsi untuk menggabungkan angka dengan tanda persentase:
SELECT CONCAT(55, ' %') Result;
Hasil:
+----------+ | Result | |----------| | 55 % | +----------+
Fungsi ini secara implisit mengonversi semua argumen ke tipe string sebelum penggabungan.