oracle中的nvl(), nvl2()函数
2016-01-22 17:30
567 查看
nvl()函数是oracle/plpgsql中的一个函数,格式为:nvl(string1, replace_with)
功能:如果string1 位null,那么nvl()函数返回replace_with的值,否则返回sting1的值。
注意:sting1和replace_with必须是同一数据类型,除非显示的适用to_char函数。
例子:
例如:
nvl(yan,0)>0
nvl(yan,0) 的意思是如果yan是null, 则取0值。
通过查询获得某个字段的合计值,如果这个值为null,则给出一个预设的 默认值(此处为0,也可以设置为其他值)。
例如:
就表示如果sum(t.dwx) = null就返回1。
还有另一种有关的有用的方法:
以上把获得的合计值存储到变量i中,如果查询的值为Null就把它的值设置为1。
其他用法举例如下:
nvl()的扩展-nvl2()
Oracle在nvl()函数的功能上扩展,提供了nvl2()函数。
nvl2()(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。
---------
本系列为最近一段时间学习oracle的学习笔记,记录于此作为自身回顾,其中有的来的网络,有的来的书籍,但时间已久,记不清哪些是引用,如是转载但没标注出,特意致歉。
功能:如果string1 位null,那么nvl()函数返回replace_with的值,否则返回sting1的值。
注意:sting1和replace_with必须是同一数据类型,除非显示的适用to_char函数。
例子:
nvl(to_char(some_numeric),’some string’) --其中some_numeric指某个数据类型的值。
例如:
nvl(yan,0)>0
nvl(yan,0) 的意思是如果yan是null, 则取0值。
通过查询获得某个字段的合计值,如果这个值为null,则给出一个预设的 默认值(此处为0,也可以设置为其他值)。
例如:
select nvl(sum(t.dwx),1) from tb t ;
就表示如果sum(t.dwx) = null就返回1。
还有另一种有关的有用的方法:
Declare i integer Select nvl(sum(t.dwx),1) into i from tb t where zx = -1;
以上把获得的合计值存储到变量i中,如果查询的值为Null就把它的值设置为1。
其他用法举例如下:
select nvl(rulescore,0) from zwjc_graderule where rulecode='FWTD'; --如果记录中不存在rulecode ='FWTD'的数据.则查不出数据. select nvl(rulescore,0) into rule_score from zwjc_graderule where rulecode='FWTD'; --会报查不到数据的错 select nvl(sum(rulescore),0) from zwjc_graderule where rulecode='FWTD'; --如果记录中不存在rulecode ='FWTD'的数据.还是可以得到一行列名为nvl(rulescore,0),值为0的数据.
nvl()的扩展-nvl2()
Oracle在nvl()函数的功能上扩展,提供了nvl2()函数。
nvl2()(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。
---------
本系列为最近一段时间学习oracle的学习笔记,记录于此作为自身回顾,其中有的来的网络,有的来的书籍,但时间已久,记不清哪些是引用,如是转载但没标注出,特意致歉。
相关文章推荐
- oracle order by和rownum 一起用
- Installation Oracle11gR2 RAC---归档模式开启与关闭
- 安装oracle $ ./runInstaller 报错
- Oracle sql执行计划解析
- Oracle重新创建数据库实例
- 安装Oracle客户端,PL/SQL总结
- mysql对比oracle
- oracle linux上yum设置及使用
- Oracle 修改字符集
- oracle AWR报告DB time和DB cpu
- Oracle数据文件物理删除后的恢复
- Oracle ORA-01034,ORA-27101,ORA-00600
- ORACLE 存储过程被锁,编译不了,怎么解锁?
- 【转】oracle over函数详解
- oracle 数据库按照条件来统计数据记录
- oracle 根据子节点取出父节点sql
- python oracle 操作
- Oracle段收缩功能
- Oracle Grouping、Rollup 的简单用法
- oracle--PL/SQL基础语法