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 setiapexpr
setelah yang pertama secara implisit dikonversi ke tipe data dariexpr
. 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.