Rumah  >  Artikel  >  pangkalan data  >  Penjelasan terperinci tentang contoh fungsi nvl() dan nvl2() dalam Oracle

Penjelasan terperinci tentang contoh fungsi nvl() dan nvl2() dalam Oracle

WBOY
WBOYke hadapan
2022-08-15 18:35:182639semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang Oracle Fungsi fungsi NVL adalah untuk menukar nilai nol dan mengembalikan respons berdasarkan sama ada nilai ungkapan pertama adalah nol atau ungkapan, artikel berikut terutamanya memperkenalkan anda kepada maklumat yang berkaitan tentang fungsi nvl() dan nvl2() dalam Oracle saya harap ia akan membantu anda.

Penjelasan terperinci tentang contoh fungsi nvl() dan nvl2() dalam Oracle

Tutorial yang disyorkan: "Tutorial Video Oracle"

Penjelasan terperinci tentang fungsi nvl() dan nvl2() dalam Oracle:

  • Fungsi nvl(ungkapan1, ungkapan2) mengembalikan nilai parameter 1 atau parameter 2 bergantung pada sama ada parameter 1 adalah nol; sama ada parameter 1 adalah nol Nilai parameter 2 atau parameter 3.
  • 1.nvl: Kembalikan nilai parameter 1 atau parameter 2 bergantung pada sama ada parameter 1 adalah batal

[Format fungsi]: nvl(ungkapan1,ungkapan2)

[Penerangan fungsi]:

Jika nilai ungkapan1 adalah nol, fungsi mengembalikan ungkapan2; 🎜>
    Jika nilai ekspresi1 dan ungkapan2 kedua-duanya adalah nol, fungsi ini mengembalikan null.
  • [Nota Khas]: Parameter ungkapan1 dan ungkapan2 boleh menjadi jenis aksara, jenis angka atau jenis tarikh, tetapi jenis parameter ungkapan1 dan ungkapan2 mestilah konsisten.
  • [Contoh paparan satu]: nilai ungkapan1 adalah nol:
ungkapan2 ialah jenis aksara:

ungkapan2 ialah jenis angka:

ungkapan2 ialah jenis tarikh dan masa:
select nvl(null,'ABCD') from dual;        --返回:ABCD
select nvl(null,'abcd') from dual;        --返回:abcd
select nvl(null,'12345') from dual;        --返回:12345

[Paparan sampel 2]: nilai ungkapan1 bukan nol:
select nvl(null,12345) from dual;        --返回:12345
select nvl(null,00000) from dual;        --返回:0
select nvl(null,-12345) from dual;        --返回:-12345
select nvl(null,123.45) from dual;        --返回:123.45
select nvl(null,-123.45) from dual;        --返回:-123.45

ungkapan1 ialah jenis aksara:

select nvl(null,sysdate) from dual;        --返回:2022/2/25 11:54:18
select nvl(null,to_date('2022/2/25 11:54:18','yyyy-mm-dd hh24:mi:ss')) from dual;                        --返回:2022/2/25 11:54:18
select nvl(null,to_date('2022/2/25','yyyy-mm-dd')) from dual;        --返回:2022/2/25
select nvl(null,to_date('2022','yyyy')) from dual;        --返回:2022/2/1

ungkapan1 adalah daripada jenis angka:

ungkapan1 adalah jenis tarikh dan masa:
select nvl('ABCD','abcd') from dual;        --返回:ABCD
select nvl('abcd','ABCD') from dual;           --返回:abcd
select nvl('12345','54321') from dual;        --返回:12345

[Sampel paparan 3]: Nilai ungkapan1 dan ungkapan2 kedua-duanya adalah nol:
select nvl(12345,null) from dual;        --返回:12345
select nvl(00000,11111) from dual;        --返回:0
select nvl(-12345,null) from dual;        --返回:-12345
select nvl(123.45,-123.45) from dual;        --返回:123.45
select nvl(-123.45,123.45) from dual;        --返回:-123.45

2.nvl2: Kembalikan nilai parameter 2 atau parameter 3 bergantung pada sama ada parameter 1 adalah batal
select nvl(sysdate,null) from dual;        --返回:2022/2/25 12:18:23
select nvl(to_date('2022/2/25 12:18:23','yyyy-mm-dd hh24:mi:ss'),null) from dual;                        --返回:2022/2/25 12:18:23
select nvl(to_date('2022/2/25','yyyy-mm-dd'),null) from dual;        --返回:2022/2/25
select nvl(to_date('2022','yyyy'),null) from dual;        --返回:2022/2/1

[Format fungsi]: nvl2(ungkapan1, ungkapan2, ungkapan3)

select nvl(null,null) from dual;        --返回空值
select nvl('',null) from dual;        --返回空值
select nvl(null,'') from dual;        --返回空值
select nvl('','') from dual;        --返回空值
[Penerangan fungsi] :

Jika nilai ekspresi1 bukan nol, fungsi mengembalikan nilai ekspresi2; nilai;

Jika Jika nilai ungkapan1, ungkapan2, dan ungkapan3 semuanya nol, fungsi itu mengembalikan nol.

  • [Nota Khas]:
  • Jenis ungkapan1 tidak perlu konsisten dengan jenis ungkapan2 dan ungkapan3; ekspresi2 dan ekspresi3 harus konsisten sebanyak mungkin Konsisten Jika tidak, apabila ekspresi1 adalah nol, ekspresi3 akan ditukar secara automatik kepada jenis ungkapan2 Jika kedua-dua jenis data tidak boleh ditukar, ralat akan dilaporkan.
[Paparan contoh 1]: Nilai ungkapan1 bukan nol:

Kedua-dua ungkapan2 dan ungkapan3 ialah jenis aksara:
  • Kedua-dua ungkapan2 dan ungkapan3 adalah jenis angka:
Jenis data ungkapan2 dan ungkapan3 tidak konsisten:

Nota: Pada masa ini, ungkapan1 mempunyai nilai, jadi fungsi mengembalikan nilai ungkapan2 secara langsung, walaupun jenis ungkapan3 tidak boleh ditukar kepada ungkapan2 Jenis tidak akan melaporkan ralat.

select nvl2(0,'ABCD','abcd') from dual;        --返回:ABCD
select nvl2('a','ABCD','1234') from dual;        --返回:ABCD
select nvl2(sysdate,'1234','abcd') from dual;        --返回:1234
[Sampel paparan 2]: nilai ekspresi1 adalah nol:

ungkapan2 dan ungkapan3 ialah kedua-dua jenis aksara:
select nvl2(0,12345,54321) from dual;        --返回:12345
select nvl2('a',123.45,543.21) from dual;        --返回:123.45
select nvl2(sysdate,-12345,-54321) from dual;        --返回:-12345

ungkapan2 dan ungkapan3 ialah kedua-dua nilai angka Jenis:

select nvl2(0,'ABCD',54321) from dual;        --返回:ABCD
select nvl2('a','abcd',543.21) from dual;        --返回:abcd
select nvl2(sysdate,'12345',-54321) from dual;        --返回:12345
Jenis data ungkapan2 dan ungkapan3 tidak konsisten:

Nota: Pada masa ini, nilai ungkapan1 adalah nol, jadi fungsi akan mengembalikan nilai ungkapan3. Jika jenis ungkapan3 tidak boleh ditukar kepada jenis ungkapan2, ralat akan dilaporkan.

select nvl2(null,'ABCD','abcd') from dual;        --返回:abcd
select nvl2('','ABCD','1234') from dual;        --返回:1234
[Contoh paparan tiga]: ekspresi1 adalah batal, dan ungkapan2 atau ungkapan3 nilai adalah batal:

select nvl2(null,12345,54321) from dual;        --返回:54321
select nvl2('',123.45,543.21) from dual;        --返回:543.21
Tutorial yang disyorkan: "

Tutorial Video Oracle

Atas ialah kandungan terperinci Penjelasan terperinci tentang contoh fungsi nvl() dan nvl2() dalam Oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:jb51.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam