Heim  >  Artikel  >  Datenbank  >  Detaillierte Erläuterung der Funktionsbeispiele nvl() und nvl2() in Oracle

Detaillierte Erläuterung der Funktionsbeispiele nvl() und nvl2() in Oracle

WBOY
WBOYnach vorne
2022-08-15 18:35:182561Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über Oracle. Die Funktion der NVL-Funktion besteht darin, Nullwerte umzuwandeln und den Namen oder Ausdruck der Antwortspalte basierend darauf zurückzugeben, ob der Wert des ersten Ausdrucks null ist Zu den relevanten Informationen zu den Funktionen nvl() und nvl2() in Oracle hoffe ich, dass sie für Sie hilfreich sind.

Detaillierte Erläuterung der Funktionsbeispiele nvl() und nvl2() in Oracle

Empfohlenes Tutorial: „Oracle-Video-Tutorial

Detaillierte Erklärung der Funktionen nvl() und nvl2() in Oracle:

  • Funktion nvl(expression1, expression2) gibt Parameter 1 oder Parameter zurück, je nachdem, ob es sich um einen Parameter handelt 1 ist null. Der Wert von 2;
  • Die Funktion nvl2(expression1, expression2, expression3) gibt den Wert von Parameter 2 oder Parameter 3 zurück, je nachdem, ob Parameter 1 null ist.

1.nvl: Gibt den Wert von Parameter 1 oder Parameter 2 zurück, je nachdem, ob Parameter 1 null ist

[Funktionsformat]: nvl(Ausdruck1,Ausdruck2)

[Funktionsbeschreibung]:

  • Wenn der Wert von Ausdruck1 ist null. Dann gibt die Funktion Ausdruck2 zurück.
  • Wenn der Wert von Ausdruck1 nicht null ist, gibt die Funktion Ausdruck1 zurück.
  • Wenn die Werte von Ausdruck1 und Ausdruck2 beide Null sind, gibt die Funktion Null zurück.

【Besonderer Hinweis】: Die Parameter expression1 und expression2 können vom Zeichentyp, vom numerischen Typ oder vom Datumstyp sein, aber die Typen der Parameter expression1 und expression2 müssen konsistent sein.

[Beispielanzeige 1]: Ausdruck1-Wert ist null:

Ausdruck2 ist Zeichentyp:

select nvl(null,'ABCD') from dual;        --返回:ABCD
select nvl(null,'abcd') from dual;        --返回:abcd
select nvl(null,'12345') from dual;        --返回:12345

Ausdruck2 ist numerischer Typ:

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

Ausdruck2 ist Datums- und Uhrzeittyp:

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

[Beispielanzeige 2]: Ausdruck1-Wert Nicht null:

Ausdruck1 ist ein Zeichentyp:

select nvl('ABCD','abcd') from dual;        --返回:ABCD
select nvl('abcd','ABCD') from dual;           --返回:abcd
select nvl('12345','54321') from dual;        --返回:12345

Ausdruck1 ist ein numerischer Typ:

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

Ausdruck1 ist ein Datums- und Uhrzeittyp:

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

[Beispielanzeige drei]: Die Werte von Ausdruck1 und Ausdruck2 sind beide null :

select nvl(null,null) from dual;        --返回空值
select nvl('',null) from dual;        --返回空值
select nvl(null,'') from dual;        --返回空值
select nvl('','') from dual;        --返回空值

2 .nvl2: Gibt den Wert von Parameter 2 oder Parameter 3 zurück, je nachdem, ob Parameter 1 null ist

[Funktionsformat]: nvl2(Ausdruck1, Ausdruck2, Ausdruck3)

[Funktionsbeschreibung]:

  • If Der Wert von Ausdruck1 ist nicht null, dann gibt diese Funktion den Wert von Ausdruck2 zurück.
  • Wenn der Wert von Ausdruck1 null ist, gibt die Funktion den Wert von Ausdruck3 zurück.
  • Wenn die Werte von Ausdruck1, Ausdruck2 und Ausdruck3 alle Null sind , gibt die Funktion null zurück.

[Besonderer Hinweis]: Der Typ von

  • Ausdruck1 muss nicht mit den Typen von Ausdruck2 und Ausdruck3 übereinstimmen.
  • Die Typen von Ausdruck2 und Ausdruck3 sollten so weit wie möglich konsistent sein. expression3 wird automatisch konvertiert, wenn expression1 null ist. Es handelt sich um den Typ von expression2. Wenn die beiden Datentypen nicht konvertiert werden können, wird ein Fehler gemeldet.

[Beispielshow 1]: Der Wert von Ausdruck1 ist nicht null:

Ausdruck2 und Ausdruck3 sind beide Zeichentypen:

select nvl2(0,'ABCD','abcd') from dual;        --返回:ABCD
select nvl2('a','ABCD','1234') from dual;        --返回:ABCD
select nvl2(sysdate,'1234','abcd') from dual;        --返回:1234

Ausdruck2 und Ausdruck3 sind beide numerische Typen:

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

Ausdruck2 und Ausdruck3 Die Datentypen sind inkonsistent:

Hinweis: Zu diesem Zeitpunkt hat Ausdruck1 einen Wert, daher gibt die Funktion direkt den Wert von Ausdruck2 zurück. Auch wenn der Typ von Ausdruck3 nicht in den Typ von Ausdruck2 konvertiert werden kann, wird kein Fehler gemeldet.

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

[Beispielanzeige 2]: Ausdruck1-Wert ist null:

Ausdruck2 und Ausdruck3 sind beide Zeichentypen:

select nvl2(null,'ABCD','abcd') from dual;        --返回:abcd
select nvl2('','ABCD','1234') from dual;        --返回:1234

Ausdruck2 und Ausdruck3 sind beide numerische Typen:

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

Ausdruck2 und Ausdruck3 Datentypen sind inkonsistent:

Hinweis: Zu diesem Zeitpunkt ist der Wert von Ausdruck1 null, sodass die Funktion den Wert von Ausdruck3 zurückgibt. Wenn der Typ von Ausdruck3 nicht in den Typ von Ausdruck2 konvertiert werden kann, wird ein Fehler gemeldet.

select nvl2(null,'ABCD',54321) from dual;        --返回:54321
select nvl2('','abcd',543.21) from dual;        --返回:543.21
select nvl2('',543.21,'abcd') from dual;        --执行报错
select nvl2(null,'abcd',sysdate) from dual;        --返回:25-2月 -22
select nvl2(null,sysdate,'abcd') from dual;        --执行报错

[Beispielanzeige drei]: Ausdruck1 ist null und der Wert von Ausdruck2 oder Ausdruck3 ist null:

select nvl2(null,null,'123') from dual;        --返回:123
select nvl2(null,'abc',null) from dual;        --返回:空值
select nvl2(null,null,null) from dual;        --返回:空值
select nvl2('','','') from dual;        --返回:空值

Empfohlenes Tutorial: „Oracle Video-Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Funktionsbeispiele nvl() und nvl2() in Oracle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:So ändern Sie PGA in OracleNächster Artikel:So ändern Sie PGA in Oracle