在oracle数据库中nvl()是什么函数?

 我来答
博学小赵爱生活
高能答主

2019-12-03 · 专注于食品生活科技行业
博学小赵爱生活
采纳数:456 获赞数:111873

向TA提问 私信TA
展开全部

nvl( ) 函数

语法:

NVL(eExpression1, eExpression2);

参数:

eExpression1, eExpression2。

如果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。

eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 .NULL.。

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将给出一个预设的默认值。

扩展资料:

nvl函数例子:

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'; 不会报错。



freechan10
2019-12-12 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:12.7万
展开全部

NVL(exp1,exp2),如果exp1的计算结果为null值,则NVL()返回exp2。如果exp1的计算结果不是null值,则返回exp1。

使用样例如下:

1、创建测试表,

create table test_nvl(value varchar2(50));

2、插入测试数据

insert into test_nvl values('123');

insert into test_nvl values('456');

insert into test_nvl values('');

insert into test_nvl values('666');

insert into test_nvl values('111');

commit;

3、查询表中全量数据,select t.*, rowid from test_nvl t;

4、编写sql,使用nvl函数,可以发现空值转为了1; select t.*, nvl(value,1) value2 from test_nvl t;

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jack_fx
2011-05-06 · TA获得超过967个赞
知道大有可为答主
回答量:1050
采纳率:0%
帮助的人:953万
展开全部
空值null转换函数,例如:
select nvl(null,'A') from dual
结果就是字符 A

select nvl(null,100) from dual
结果就是数值 100
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xwnjvvl
推荐于2017-10-14 · TA获得超过961个赞
知道小有建树答主
回答量:1073
采纳率:0%
帮助的人:0
展开全部
如果你某个字段为空,但是你想让这个字段显示0
nvl(字段名,0),就是当你选出来的时候,这个字段虽然为空,但是显示的是0,当然这个0也可以换成其他东西,如:1,2,3……
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
whmbbta
2011-05-15 · TA获得超过2838个赞
知道小有建树答主
回答量:992
采纳率:0%
帮助的人:517万
展开全部
如果你某个字段为空,但是你想让这个字段显示0
nvl(字段名,0),就是当你选出来的时候,这个字段虽然为空,但是显示的是0,当然这个0也可以换成其他东西,如:1,2,3……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式