Masalah:
Anda ingin membulatkan angka ke angka desimal tertentu.
Contoh:
Basis data kami memiliki tabel bernama product
dengan data pada kolom berikut:id
, name
, dan price_net
.
id | nama | harga_net |
---|---|---|
1 | roti | 2,34 |
2 | croissant | 1.22 |
3 | putar | 0,68 |
Misalkan ada pajak sebesar 24% untuk setiap produk, dan Anda ingin menghitung harga kotor setiap item (yaitu, setelah pajak) dan membulatkan nilainya menjadi dua tempat desimal.
Solusi:
SELECT id, ROUND( price_net*1.24 , 2 ) as price_gross FROM product;
Kueri ini mengembalikan harga kotor yang dibulatkan ke dua tempat desimal:
id | harga_kotor |
---|---|
1 | 2,90 |
2 | 1,51 |
3 | 0,84 |
Diskusi:
Jika Anda ingin membulatkan angka floating-point ke angka desimal tertentu di SQL, gunakan fungsi ROUND. Argumen pertama dari fungsi ini adalah kolom yang nilainya ingin Anda bulatkan; argumen kedua adalah opsional dan menunjukkan jumlah tempat yang ingin Anda bulatkan. Secara default, jika Anda tidak menentukan argumen kedua, fungsi akan membulatkan ke bilangan bulat terdekat.
Dalam contoh ini, kami tidak akan menentukan jumlah tempat yang kami inginkan untuk membulatkan kolom:
SELECT id, ROUND(price_net*1.24) as price_gross FROM product;
Dan inilah hasil yang sesuai:
id | harga_kotor |
---|---|
1 | 3 |
2 | 2 |
3 | 1 |