Di Oracle, ROUND(number)
fungsi mengembalikan angka yang dibulatkan ke sejumlah tempat desimal tertentu.
Secara default, ini membulatkan angka ke nol tempat desimal, tetapi Anda dapat memberikan argumen opsional yang menentukan jumlah tempat desimal yang akan digunakan.
Oracle juga memiliki ROUND(date)
sintaks, yang digunakan pada tanggal. Artikel ini semata-mata tentang ROUND(number)
sintaks, yang digunakan pada angka.
Sintaks
Sintaksnya seperti ini:
ROUND(n [, integer ])
Dimana n
dapat berupa tipe data numerik apa pun atau tipe data nonnumerik apa pun yang dapat secara implisit dikonversi ke tipe data numerik, dan integer
adalah bilangan bulat opsional yang menentukan jumlah tempat desimal yang akan dibulatkan n
untuk.
Contoh
Ini contohnya:
SELECT ROUND(7.85)
FROM DUAL;
Hasil:
ROUND(7.85) ______________ 8
Nilai Negatif
Mengalihkannya ke nilai negatif menghasilkan hasil berikut:
SELECT ROUND(-7.85)
FROM DUAL;
Hasil:
ROUND(-7.85) _______________ -8
Argumen Kedua
Berikut ini contoh memberikan argumen kedua:
SELECT ROUND(7.85, 1)
FROM DUAL;
Hasil:
ROUND(7.85,1) ________________ 7.9
Dalam hal ini, saya menetapkan bahwa hasilnya harus dibulatkan ke satu tempat desimal.
Berikut contoh lain dengan jumlah tempat desimal yang lebih besar:
SELECT ROUND(3.14159265359, 4)
FROM DUAL;
Hasil:
ROUND(3.14159265359,4) _________________________ 3.1416
Pembulatan Negatif
Anda juga dapat menentukan nilai negatif untuk argumen kedua. Melakukannya akan membulatkan angka di sebelah kiri koma desimal:
SELECT ROUND(75631, -3)
FROM DUAL;
Hasil:
ROUND(75631,-3) __________________ 76000
Pembulatan Argumen Non-Numerik
Inilah yang terjadi ketika kami mencoba membulatkan argumen non-numerik yang tidak dapat dikonversi ke tipe data numerik:
SELECT ROUND('Bruce')
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT ROUND('Bruce') FROM DUAL Error report - ORA-01722: invalid number
Namun, kita dapat membulatkan tanggal – ada versi tanggal dari fungsi ini yang memungkinkan kita untuk membulatkan tanggal.
Nilai Null
Mencoba membulatkan null
mengembalikan null
, dan mencoba membulatkan angka dengan null
juga menghasilkan null
:
SET NULL 'null';
SELECT
ROUND(null),
ROUND(null, 2),
ROUND(2.345, null)
FROM DUAL;
Hasil:
ROUND(NULL) ROUND(NULL,2) ROUND(2.345,NULL) ______________ ________________ ____________________ null null null
Secara default, SQLcl dan SQL*Plus mengembalikan ruang kosong setiap kali null
terjadi sebagai akibat dari SQL SELECT
penyataan.
Namun, Anda dapat menggunakan SET NULL
untuk menentukan string berbeda yang akan dikembalikan. Di sini saya menetapkan bahwa string null
harus dikembalikan.
Jumlah Argumen Salah
Memanggil ROUND()
tanpa memberikan argumen apa pun mengembalikan kesalahan:
SELECT ROUND()
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT ROUND() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function" *Cause: *Action:
Dan meneruskan jumlah argumen yang salah menghasilkan kesalahan:
SELECT ROUND(1.34, 2, 3)
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT ROUND(1.34, 2, 3) FROM DUAL Error at Command Line : 1 Column : 23 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: