Maison > Article > base de données > Explication détaillée des exemples de fonctions nvl() et nvl2() dans Oracle
Cet article vous apporte des connaissances pertinentes sur Oracle La fonction de la fonction NVL est de convertir les valeurs nulles et de renvoyer le nom de la colonne de réponse ou l'expression selon que la valeur de la première expression est nulle. L'article suivant vous présente principalement. aux informations pertinentes sur les fonctions nvl() et nvl2() dans Oracle, j'espère que cela vous sera utile.
Tutoriel recommandé : "Tutoriel vidéo Oracle"
Explication détaillée des fonctions nvl() et nvl2() dans Oracle :
[Format de la fonction] : nvl(expression1,expression2)
[Description de la fonction] :
【Remarque spéciale】 : Les paramètres expression1 et expression2 peuvent être de type caractère, de type numérique ou de type date, mais les types de paramètres expression1 et expression2 doivent être cohérents.
expression2 est un type de caractère :
select nvl(null,'ABCD') from dual; --返回:ABCD select nvl(null,'abcd') from dual; --返回:abcd select nvl(null,'12345') from dual; --返回:12345
expression2 est un type numérique :
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
expression2 est un type de date et d'heure :
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
expression1 est un type de caractère :
select nvl('ABCD','abcd') from dual; --返回:ABCD select nvl('abcd','ABCD') from dual; --返回:abcd select nvl('12345','54321') from dual; --返回:12345
expression1 est un type numérique :
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
expression1 est un type de date et d'heure :
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; --返回空值
[Format de la fonction] : nvl2(expression1, expression2, expression3)
[Description de la fonction] :
[Remarque spéciale] : Le type de
expression2 et expression3 sont tous deux des types de caractères :
select nvl2(0,'ABCD','abcd') from dual; --返回:ABCD select nvl2('a','ABCD','1234') from dual; --返回:ABCD select nvl2(sysdate,'1234','abcd') from dual; --返回:1234
expression2 et expression3 sont tous deux des types numériques :
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
les types de données expression2 et expression3 sont incohérents :
Remarque : A ce moment, expression1 a une valeur, donc la fonction renvoie directement la valeur de expression2 Même si le type d'expression3 ne peut pas être converti en type d'expression2, aucune erreur ne sera signalée.
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
expression2 et expression3 sont tous deux de type caractère :
select nvl2(null,'ABCD','abcd') from dual; --返回:abcd select nvl2('','ABCD','1234') from dual; --返回:1234
expression2 et expression3 sont toutes deux de type numérique :
select nvl2(null,12345,54321) from dual; --返回:54321 select nvl2('',123.45,543.21) from dual; --返回:543.21
les types de données expression2 et expression3 sont incohérents :
Remarque : À ce stade, la valeur de expression1 est nulle, donc la fonction renverra la valeur de expression3 Si le type d'expression3 ne peut pas être converti en type d'expression2, une erreur sera signalée.
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; --返回:空值
Tutoriel recommandé : "Tutoriel vidéo Oracle"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!