优化网站制作方法大全,wordpress连接不上数据库,燕郊网站建设公司,elementor做视频网站Oracle中nvl()与nvl2()函数详解#xff1a; 函数nvl(expression1,expression2)根据参数1是否为null返回参数1或参数2的值#xff1b; 函数nvl2(expression1,expression2,expression3)根据参数1是否为null返回参数2或参数3的值
1.nvl#xff1a;根据参数1是否为null返回参数…Oracle中nvl()与nvl2()函数详解 函数nvl(expression1,expression2)根据参数1是否为null返回参数1或参数2的值 函数nvl2(expression1,expression2,expression3)根据参数1是否为null返回参数2或参数3的值
1.nvl根据参数1是否为null返回参数1或参数2的值 【函数格式】nvl(expression1,expression2)
若expression1值为null则该函数返回expression2 若expression1值不为null则该函数返回expression1 若expression1、expression2的值均为null则该函数返回null。 【特别说明】参数expression1和expression2可以是字符型、数字型或日期型但参数expression1与expression2的类型必须一致 【样例展示一】expression1值为null
expression2为字符型 select nvl(null,ABCD) from dual; --返回ABCD select nvl(null,abcd) from dual; --返回abcd select nvl(null,12345) from dual; --返回12345
expression2为数值型 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为日期时间型 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值不为null
expression1为字符型 select nvl(ABCD,abcd) from dual; --返回ABCD select nvl(abcd,ABCD) from dual; --返回abcd select nvl(12345,54321) from dual; --返回12345
expression1为数值型 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为日期时间型 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
【样例展示三】expression1、expression2值均为null
select nvl(null,null) from dual; --返回空值 select nvl(,null) from dual; --返回空值 select nvl(null,) from dual; --返回空值 select nvl(,) from dual; --返回空值
2.nvl2根据参数1是否为null返回参数2或参数3的值 【函数格式】nvl2(expression1,expression2,expression3)
若expression1值不为null则该函数返回expression2值 若expression1值为null则该函数返回expression3值 若expression1、expression2、expression3值均为null则该函数返回null。 【特别说明】
expression1的类型不需要与expression2和expression3的类型保持一致 expression2与expression3的类型尽量保持一致若不一致当expression1为null时则expression3会自动转换为expression2的类型若两个数据类型之间无法转换则会报错。 【样例展示一】expression1值不为null
expression2和expression3均为字符型 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和expression3均为数值型 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
expression2和expression3数据类型不一致 注意此时expression1有值因此该函数直接返回expression2的值即使expression3的类型无法转换为expression2的类型也不会报错。
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
【样例展示二】expression1值为null
expression2和expression3均为字符型 select nvl2(null,ABCD,abcd) from dual; --返回abcd select nvl2(,ABCD,1234) from dual; --返回1234
expression2和expression3均为数值型 select nvl2(null,12345,54321) from dual; --返回54321 select nvl2(,123.45,543.21) from dual; --返回543.21