Oracle nvl()函数和nvl2()函数的作用,将null赋值为0

Oracle nvl()函数和nvl2()函数的区别和作用,将null赋值为0

最近项目中经常见到这个函数,就记录一下。学习了下还是非常不错的一个函数的。

1.nvl(col1,para1)排空函数

我们在数据库sql操作中会遇到有些情况需要使用分组函数或者有需求(数据为空的时候赋值为0)就需要用到这个函数

当col1为空,null的时候,就返回para1的值。

比如:往数据库里面赋值:当插入一条数据或者计算一条数据的时候,其中有一个字段为null,但是我们需要显示为0或者进行计算的时候就需要用到这个:

select avg(salary) from emp;
--当这个字段中有null的时候,就只会计算不为空的字段数量
--14条数据,三条为空为null,使用avg最后结果只会除以11,而不是除以14

select avg(nvl(salary,0)) from emp;
--这个就会除以14得出结果

2.nvl2(col,para1,para2) 类似Java的三元表达式

和Java的三元表达式类似。col的值不为null的时候返回para1,否则返回para2。

注:

w3cJava三元表达式:https://www.w3cschool.cn/java/java-ternary-operator.html

分组函数:

分组函数会自动忽略空值,进行计算

  • avg()//取平均值

  • sum()//求和

  • max()//求最大值

  • min()//求最小值

  • count()//统计行数

select count(*) from dual;
--统计出所有的数据量。即数据库表存储的所有数据的长度。假如有20条数据,这里会显示20

select count(salary) from dual;
--统计salary字段所有不为空的长度。为空自动忽略.假如有20条数据,但是又三条数据salary为nnull,这里会显示17.
  • wm_count()//行转列:eg:一个部门中所有员工都显示在一行上面,','隔开。

 

这几天学sql快学疯了,不过好的一点就是,实践过的知识现在总会有新的体会,整体的学一遍之后,对整体知识理解又上升了一个阶段。以前很难理解的知识,现在来看很清楚明白。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值