oracle判断字段为空时选用别的字段_oracle中使用sql查询时字段为空则赋值默认

转至:http://www.th7.cn/db/Oracle/201501/86125.shtml

oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值

oracle 函数介绍之nvl

函数声明:nvl(col,val)

说明:当col为空时取val作为返回值,当col不为空时取col值。

用处:最主要的是格式化数据,比如计算金额时,不想出现空数据,可以使用nvl(JINE,0)来得到0。由于null+(或-,*,/)数字等于

null,所以在表达式中对可能为空的值要使用nvl由于null!=null,有时对可能为空的列进行条件查询时,可能出现结果集丢失数据问题,加上

nvl就不会了。

经典用法:

通过查询获得某个字段的合计值,如果这个值为null将给出一个预设的默认值例如:select nvl(sum(t.字段),1)  from table t就表示如果sum(t.字段) = NULL 就返回 1另一个有关的有用方法declare i integerselect nvl(sum(t.字段),1) into i from table t这样就可以把获得的合计值存储到变量i中,如果查询的值为null就把它的值设置为默认的1orcale

中: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) into rule_score from zwjc_graderule where rulecode='FWTD'; 不会报错

oracle 函数介绍之nvl2

Oracle在NVL函数的功能上扩展ÿ

你可能感兴趣的:(oracle判断字段为空时选用别的字段_oracle中使用sql查询时字段为空则赋值默认)