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.
Empfohlenes Tutorial: „Oracle-Video-Tutorial“
Detaillierte Erklärung der Funktionen nvl() und nvl2() in Oracle:
[Funktionsformat]: nvl(Ausdruck1,Ausdruck2)
[Funktionsbeschreibung]:
【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.
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
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
select nvl(null,null) from dual; --返回空值 select nvl('',null) from dual; --返回空值 select nvl(null,'') from dual; --返回空值 select nvl('','') from dual; --返回空值
[Funktionsformat]: nvl2(Ausdruck1, Ausdruck2, Ausdruck3)
[Funktionsbeschreibung]:
[Besonderer Hinweis]: Der Typ von
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
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; --执行报错
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!