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

Fungsi GREATEST() di Oracle

Di Oracle Database, GREATEST() fungsi mengembalikan yang terbesar dari daftar satu atau lebih ekspresi.

Sintaks

Sintaksnya seperti ini:

GREATEST(expr [, expr ]...)

expr first pertama digunakan untuk menentukan tipe pengembalian:

  • Jika expr pertama adalah numerik, lalu Oracle menentukan argumen dengan prioritas numerik tertinggi, secara implisit mengonversi argumen yang tersisa ke tipe data tersebut sebelum perbandingan, dan mengembalikan tipe data tersebut.
  • Jika expr pertama adalah tidak numerik, lalu setiap expr setelah yang pertama secara implisit dikonversi ke tipe data dari expr . pertama sebelum perbandingan.

Contoh

Ini contohnya:

SELECT GREATEST('a', 'b', 'c')
FROM DUAL;

Hasil:

c

Berikut beberapa lainnya:

SELECT 
    GREATEST('A', 'a') AS "r1",
    GREATEST('Cat', 'Dog', 'Dot') AS "r2",
    GREATEST(1, 2, 3) AS "r3",
    GREATEST(1, '2', 3) AS "r4",
    GREATEST('Cat', '2001-12-31') AS "r5"
FROM DUAL;

Hasil:

   r1     r2    r3    r4     r5 
_____ ______ _____ _____ ______ 
a     Dot        3     3 Cat   

Ekspresi

Argumen dapat mencakup ekspresi seperti ini:

SELECT GREATEST(2 * 3, 1 * 3)
FROM DUAL;

Hasil:

6

Tanggal

Berikut perbandingan string tanggal:

SELECT GREATEST(DATE '2020-01-01', DATE '2021-01-01')
FROM DUAL;

Hasil:

01-JAN-21

Tanggal dikembalikan dalam format tanggal sesi saat ini. Lihat Cara Memeriksa Format Tanggal Sesi Saat Ini.

Nilai Null

Jika ada argumen null , hasilnya null :

SET NULL 'null';
SELECT 
    GREATEST(null, 2),
    GREATEST(1, null)
FROM DUAL;

Hasil:

   GREATEST(NULL,2)    GREATEST(1,NULL) 
___________________ ___________________ 
null                               null

Secara default, SQLcl dan SQL*Plus mengembalikan ruang kosong setiap kali nilai null muncul sebagai hasil dari SELECT SQL 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 Tidak Valid

Memanggil GREATEST() tanpa argumen apa pun menghasilkan kesalahan:

SELECT GREATEST()
FROM DUAL;

Hasil:

SQL Error: ORA-00938: not enough arguments for function
00938. 00000 -  "not enough arguments for function"

Anda juga dapat menggunakan LEAST() untuk mengembalikan paling sedikit dari daftar satu atau lebih ekspresi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Metadata mengenai tipe record level paket PL/SQL

  2. Bagaimana Mengenkripsi Kata Sandi di Oracle?

  3. insert massal dari Java ke Oracle

  4. Koleksi Oracle PL/SQL - Menambahkan Elemen ke Tabel yang Ada

  5. ORA-16789:log redo siaga tidak dikonfigurasi dengan benar