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

Fungsi NVL2 di Oracle

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menjalankan prosedur tersimpan Oracle melalui tautan basis data

  2. cara membuat tabel di oracle

  3. ROWDTOCHAR() Fungsi di Oracle

  4. Pengembang Oracle SQL:Kegagalan - Tes gagal:Adaptor Jaringan tidak dapat membuat koneksi?

  5. PL/SQL:bagaimana cara meminta input pengguna dalam suatu prosedur?