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

NVL2() Fungsi di Oracle

Di Oracle Database, NVL2() fungsi memungkinkan kita untuk mengganti nilai nol dengan nilai lain.

Ini mirip dengan NVL() fungsi, kecuali bahwa ia menerima tiga argumen, bukan dua. Ini memungkinkan kita untuk menentukan nilai yang berbeda untuk dikembalikan jika argumen pertama bukan null.

Sintaks

Sintaksnya seperti ini:

NVL2(expr1, expr2, expr3)

Jika expr1 bukan nol, maka NVL2 mengembalikan expr2 . Jika expr1 adalah nol, maka NVL2 mengembalikan expr3 .

Contoh

Berikut ini contoh untuk didemonstrasikan:

SELECT NVL2(null, 2, 3)
FROM DUAL;

Hasil:

3

Argumen pertama adalah null dan argumen ketiga dikembalikan.

Dan inilah yang terjadi ketika argumen pertama tidak nol:

SELECT NVL2(1, 2, 3)
FROM DUAL;

Hasil:

2

Bila Nilai Penggantinya Null

Jika argumen kedua atau ketiga adalah nol, maka Anda bisa berakhir dengan hasil nol.

Contoh:

SET NULL '(null)';
SELECT 
    NVL2(1, null, 3) AS "r1",
    NVL2(null, 2, null) AS "r2"
FROM DUAL;

Hasil:

       r1        r2 
_________ _________ 
   (null)    (null)

Mengenai baris pertama SET NULL '(null)'; , saya menambahkan baris ini sehingga sesi SQLcl saya mengembalikan nilai itu setiap kali hasilnya nol.

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 (seperti yang telah saya lakukan di sini).

Jumlah Argumen Tidak Valid

Memanggil fungsi tanpa meneruskan argumen apa pun menghasilkan kesalahan:

SELECT NVL2()
FROM DUAL;

Hasil:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

Dan memberikan terlalu banyak argumen juga menyebabkan kesalahan:

SELECT NVL2(1, 2, 3, 4)
FROM DUAL;

Hasil:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle, PDO_OCI vs OCI8

  2. Cara mengambil data dua kolom dalam format A,B di Oracle

  3. Paksa Oracle Jatuhkan Tabel Temp Global

  4. Oracle:Mengonversi Jumlah Mata Uang dalam Kata Menggunakan PL/SQL

  5. Buat File Excel (.xlsx) menggunakan PL/SQL