Apa itu Fungsi Penggabungan
Fungsi Penggabungan adalah fungsi yang berguna di Oracle dan sangat berguna ketika kita ingin mengembalikan nilai non-null pertama dalam daftar. Tutorial SQL ini memberikan penjelasan, contoh Coalesce Function di Oracle dan Perbedaan antara Coalesce &NVL
expr1 :Ini dikembalikan jika bukan null
expr2:Ini dikembalikan jika bukan null dan ekspresi pertama null
exprn:Ini dikembalikan jika ekspresi sebelumnya null
Jadi Coalesce in oracle akan mengembalikan ekspresi pertama jika bukan null lagi ia akan menggabungkan sisa ekspresi
Poin penting
(1) Oracle Database menggunakan evaluasi hubung singkat. Basis data mengevaluasi setiap nilai expr dan menentukan apakah itu NULL, daripada mengevaluasi semua nilai expr sebelum menentukan apakah salah satunya adalah NULL.
(2) COALESCE di oracle setara dengan fungsi Case
Jadi COALESCE (expr1, expr2) sama dengan:
KASUS KETIKA expr1 BUKAN NULL MAKA expr1ELSE expr2 AKHIR
Demikian pula,
COALESCE (expr1, expr2, …, exprn), untuk n>=3 setara dengan:
KASUS KETIKA expr1 TIDAK NULL MAKA expr1KETIKA expr2 TIDAK NULL MAKA expr2KETIKA expr3 TIDAK NULL MAKA expr3KETIKA exprn TIDAK NULL MAKA exprnEND
Atau dapat ditulis sebagai
KASUS KETIKA expr1 BUKAN NULL MAKA expr1ELSE COALESCE (expr2, ..., exprn) SELESAI
(3) Biasanya semua ekspr dari pernyataan penggabungan harus dari tipe data yang sama jika tidak, ORA-00932 akan dikembalikan.
SQL> pilih coalesce('a',1,2) dari dual;select coalesce('a',1,2) dari dual*ERROR pada baris 1:ORA-00932:tipe data tidak konsisten:CHAR yang diharapkan mendapat NUMBERJika semua kemunculan ekspresi adalah tipe data numerik atau tipe data non-numerik apa pun yang dapat secara implisit dikonversi ke tipe data numerik, maka Oracle Database menentukan argumen dengan prioritas numerik tertinggi, secara implisit mengonversi argumen yang tersisa ke tipe data tersebut dan mengembalikan tipe data tersebut.
Cara menggunakan Fungsi Penggabungan
SQL> pilih penggabungan(1,2,3) dari dual;COALESCE(1,2,3)---------------1SQL> SELECT COALESCE(null, null, null , 'X', 'Y');COALESCE(...)---------------XContoh Penggabungan
Misalkan kita memiliki tabel oracle karyawan yang terdiri dari alamat1, alamat2, dan alamat3 dan kita dapat mencetak alamat bukan-null pertama karyawan dari tabel dalam urutan prioritas address1> address2> address3
pilih emp_name, COALESCE(address1,address2,address3) dari karyawan;Perbedaan Antara Fungsi Coalesce dan NVL
- Coalesce adalah generalisasi dari fungsi NVL. Fungsi NVL dapat digunakan untuk dua ekspresi, sedangkan penggabungan dapat digunakan untuk Banyak
- Dalam kasus dua ekspresi, mereka sama tetapi implementasinya berbeda. Oracle mengevaluasi kedua ekspresi dalam kasus NVL sementara itu hanya mengevaluasi ekspresi pertama dalam kasus penggabungan. Jadi jika ekspresi kedua memiliki kesalahan, NVL akan melempar kesalahan sementara menyatu tidak akan.
- Coalesce adalah standar ANSI sedangkan NVL khusus Oracle
Artikel Terkait
Tutorial Oracle Sql
Fungsi NULLIF di Oracle
Fungsi NVL di Oracle
Fungsi Oracle LISTAGG
https://docs.Oracle.com/cd/B28359_01/server.111/b28286/ function023.htm#SQLRF00617