Tutorial SQL ini memberikan penjelasan, contoh fungsi NVL2 di Oracle
Fungsi NVL2 adalah fungsi bersarang. Ini memeriksa kesan pertama, jika kesan pertama tidak nol, maka fungsi NVL2 mengembalikan ekspresi kedua. jika kesan pertama adalah nol, maka ia mengembalikan ekspresi ketiga.
expr1 :itu adalah nilai atau ekspresi sumber yang mungkin berisi nol. Anda dapat memberikan nama kolom, fungsi pada nama kolom
expr2 :Ini adalah nilai ekspresi yang dikembalikan jika expr1 bukan null
expr3 :Ini adalah nilai ekspresi yang dikembalikan jika expr1 adalah null
Argumen expr1 dapat memiliki tipe data apa pun. Argumen expr2 dan expr3 dapat memiliki tipe data apa pun kecuali LONG.
SQL> select nvl2(user_name,1,2) from apps.fnd_user where rownum < 5; NVL2(USER_NAME,1,2) ------------------- 1 1 1 1 SQL> select nvl2(end_date,1,2) from apps.fnd_user where rownum < 5; NVL2(END_DATE,1,2) ------------------ 1 2 1 1
Jika tipe data expr2 dan expr3 berbeda:
Jika expr2 adalah data karakter, maka Oracle Database mengonversi expr3 ke tipe data dari expr2 sebelum membandingkannya kecuali jika expr3 adalah konstanta nol. Dalam hal ini, konversi tipe data tidak diperlukan. Oracle mengembalikan VARCHAR2 dalam set karakter expr2.
Jika expr2 adalah numerik, maka Oracle menentukan argumen mana yang memiliki prioritas numerik tertinggi, secara implisit mengonversi argumen lain ke tipe data tersebut, dan mengembalikan tipe data tersebut.
Tipe data tipe kembalian selalu sama dengan tipe data expr2 kecuali expr2 adalah data karakter, yang mana nilai baliknya selalu varchar2
SQL> select nvl2(end_date,1,'a') from apps.fnd_user where rownum < 5; select nvl2(end_date,1,'a') from apps.fnd_user where rownum < 5 * ERROR at line 1: ORA-01722: invalid number SQL> select nvl2(end_date,'a',1) from apps.fnd_user where rownum < 5; N - a 1 a a
Penggunaan
SELECT last_name, salary, NVL2(commission_pct, salary + (salary * commission_pct), salary) income FROM employees WHERE last_name like 'B%' ORDER BY last_name;
Artikel Terkait
Fungsi baris tunggal di Sql
Fungsi NULLIF di Oracle
Perbarui pernyataan di oracle
Fungsi Gabungan di Oracle
Fungsi Oracle LISTAGG
fungsi tanggal oracle