Di Oracle, FLOOR()
fungsi mengembalikan bilangan bulat terbesar yang sama dengan atau kurang dari argumennya.
Sintaks
Sintaksnya seperti ini:
FLOOR(n)
Dimana n
dapat berupa tipe data numerik atau tipe data nonnumerik apa pun yang dapat secara implisit dikonversi ke tipe data numerik.
Contoh
Ini contohnya:
SELECT FLOOR(1.85)
FROM DUAL;
Hasil:
FLOOR(1.85) ______________ 1
Mengalihkannya ke nilai negatif menghasilkan hasil berikut:
SELECT FLOOR(-1.85)
FROM DUAL;
Hasil:
FLOOR(-1.85) _______________ -2
Dibandingkan dengan ROUND()
FLOOR()
fungsinya berbeda dengan ROUND()
fungsi. ROUND()
fungsi akan membulatkan angka ke atas dalam beberapa kasus, dan ke bawah dalam kasus lain. FLOOR()
di sisi lain, selalu mengembalikan bilangan bulat terbesar yang sama dengan atau kurang dari argumennya.
SELECT
FLOOR(1.85),
ROUND(1.85)
FROM DUAL;
Hasil:
FLOOR(1.85) ROUND(1.85) ______________ ______________ 1 2
Juga, ROUND()
memungkinkan kita untuk menentukan jumlah tempat desimal yang akan dibulatkan menjadi:
SELECT
FLOOR(1.85),
ROUND(1.85, 1)
FROM DUAL;
Hasil:
FLOOR(1.85) ROUND(1.85,1) ______________ ________________ 1 1.9
Argumen Non-Numerik
Argumen dapat berupa tipe data numerik apa pun atau tipe data nonnumerik apa pun yang dapat secara implisit dikonversi ke tipe data numerik.
Inilah yang terjadi ketika kami memberikan argumen non-numerik yang tidak dapat dikonversi ke tipe data numerik:
SELECT FLOOR('Bruce')
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT FLOOR('Bruce') FROM DUAL Error report - ORA-01722: invalid number
Nilai Null
Melewati null
ke FLOOR()
mengembalikan null
:
SET NULL 'null';
SELECT FLOOR(null)
FROM DUAL;
Hasil:
FLOOR(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 FLOOR()
tanpa memberikan argumen apa pun mengembalikan kesalahan:
SELECT FLOOR()
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT FLOOR() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action:
Dan meneruskan jumlah argumen yang salah menghasilkan kesalahan:
SELECT FLOOR(1, 2)
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT FLOOR(1, 2) FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action:
Oracle juga memiliki CEIL()
fungsi yang mengembalikan bilangan bulat terkecil yang lebih besar dari atau sama dengan argumennya.