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

Cara menggunakan Fungsi Penggabungan di Oracle

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 NUMBER 

Jika 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(...)---------------X

Contoh 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

  1. Coalesce adalah generalisasi dari fungsi NVL. Fungsi NVL dapat digunakan untuk dua ekspresi, sedangkan penggabungan dapat digunakan untuk Banyak
  2. 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.
  3. 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PRVG-2027 Pemilik file tidak konsisten di seluruh node

  2. Bisakah kita memperbarui nilai kunci utama dari sebuah tabel?

  3. Memahami aliasing Oracle - mengapa alias tidak dikenali dalam kueri kecuali dibungkus dengan kueri kedua?

  4. Pernyataan Kasus Oracle Dijelaskan dengan Tip dan Contoh

  5. Kembalikan Nama Hari Pendek dari Tanggal di Oracle