Oracle数据库:NVL()函数 Oracle/PLSQL中的一个函数
2013-09-01 21:45
316 查看
NVL函数 Oracle/PLSQL中的一个函数
格式为:NVL( string1, replace_with)
功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值。
引申一下,此NVL的作用与SQLserver 中的 ISNULL( string1, replace_with) 一样。
注意事项:string1和replace_with必须为同一数据类型,除非显式的使用TO_CHAR函数。
例:NVL(TO_CHAR(numeric_column), 'some string') 其中numeric_column代指某个数字类型的值。
例:nvl(yanlei777,0) > 0
NVL(yanlei777, 0) 的意思是 如果 yanlei777 是NULL, 则取 0值
通过查询获得某个字段的合计值,如果这个值为null将给出一个预设的默认值
例如:
select nvl(sum(t.dwxhl),1)
from tb_jhde t
就表示如果sum(t.dwxhl) = NULL 就返回 1
另一个有关的有用方法
declare i integer
select nvl(sum(t.dwxhl),1) into i from tb_jhde t where zydm=-1这样就可以把获得的合计值存储到变量
i中,如果查询的值为null就把它的值设置为默认的1
oracle中:
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的数据.
select nvl(sum(rulescore),0) rule_score from zwjc_graderule where rulecode='FWTD'; 不会报错
编辑本段NVL的扩展-NVL2
Oracle在NVL函数的功能上扩展,提供了NVL2函数。NVL2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。
相关文章推荐
- Oracle/PLSQL中的一个函数--NVL函数
- NVL函数 Oracle/PLSQL中的一个函数
- NVL函数 Oracle/PLSQL中的一个函数
- oracle 中的 decode()、nvl()、sign()函数详解
- 一个简单的oracle函数返回数组的例子
- Oracle使用cast() 函数的一个BUG
- 不安装Oracle客户端使用PLSQL连接Oracle数据库的方法
- 主题:Oracle函数总结 NVL
- 使用oracle客户端与PLSQL连接ORACLE数据库软件安装过程
- Oracle创建一个type、package、body、function、procedure及常用系统函数。
- PLSQL: Oracle函数to_char转化数字型指定小数点位数的技巧
- oracle如何写一个函数
- oracle的PLSQL单行函数和组函数详解
- 【转】【NVL】oracle中nvl()函数
- oracle之PLSQL优化查询语句——多种函数配合over()函数运用
- oracle中PLSQL存储过程中如何使用逗号分隔的集合(逗号分隔字符串转换为一个集合)
- Oracle常用函数:nvl/nullif/case when/wm_concat/replace
- oracle之简null空值问题,用nvl(a,b)函数解决
- Oracle decode和nvl 函数的用法及区别?
- 使用ODP.NET连接Oracle数据库一个OracleCommand运行多条SQL语句的方法