Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

FLOOR() Fungsi di Oracle

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CURRENT_TIMESTAMP dan SYSDATE berbeda di Oracle

  2. Bagaimana cara menghapus / menghapus sepenuhnya Oracle 11g (klien)?

  3. Fungsi Datetime Oracle (Daftar Lengkap)

  4. Bagaimana cara Membagi String di PL/SQL?

  5. Apa perbedaan antara hash join dan merge join (Oracle RDBMS )?