设为首页 加入收藏

TOP

SQL语句的DECODE()和NVL()函数用法(二)
2014-11-24 02:37:53 来源: 作者: 【 】 浏览:3
Tags:SQL 语句 DECODE NVL 函数 用法
_is_null) 其中input_source一般是一个列名。result_if_input_value_is_null 可以是任何值:直接值(即硬编码)、对其他列的引用或者表达式
注意:NVL函数实际上并不是更新表中的值。原数据仍保持不变。
NVL 有一个怪癖,它要求input_source和result_if_input_value_is_null的数据类型是相同的;如果希望此函数在发现空 值时显示流行的“N/A”就会出现问题。因为“N/A”是文本,如果input_value是一个文本列,就没有问题了。但是,如果在一个日期或数值列中 查找空值,将需要对input_value列应用TO_CHAR函数,以便使input_value也成为文本。  
NVL是如果NULL, 则取指定值
例: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
www.2cto.com
orcale中:
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'; 不会报错
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇oracle中Decode()函数使用说明 下一篇DECODE()函数用法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: