oracle: OCA-047-题解与实验(9)--SQL语句中COUNT和NLV的用法

这篇博客探讨了Oracle数据库中SQL语句中COUNT函数和NVL函数的用法。通过实例解析,解释了COUNT用于计算记录数,NVL则用于处理NULL值,当指定字段为NULL时,返回替换值。文章引用了百度百科的资料来详细说明NVL函数的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

唱着那无人问津的歌谣~如果有一天,我老无所依~请把我留在那时光里~快哭了 

题目:

答案解释:exhibit是一个很多表的图,不贴出来了,题意简单就是检验会不会用count及nvl了,看例子吧

SQL> select * from t1;
 
                                     ID NAME
--------------------------------------- ----------
                                      1 john
                                      2 
                                      3 
                                      4 jash
                                      2 kode
 
SQL> select count(*) from t1;               统计有多少记录
 
  COUNT(*)
----------
         5
 
SQL> select count(id) from t1;              统计id有多少值,排除NULL
 
 COUNT(ID)
----------
         5
 
SQL> select count(name) from t1;            统计name有多少值,排除NULL
 
COUNT(NAME)
-----------
          3
 
SQL> select count(distinct id) from t1;     统计id有多少值,排除重复值及NULL
 
COUNT(DISTINCTID)
-----------------
                4
 
SQL> select count(distinct name) from t1;   统计name有多少值,排除重复值及NULL
 
COUNT(DISTINCTNAME)
-------------------
                  3
 
SQL> select count(name) from t1 where name is null; 因为count不统计null值,所以为0
 
COUNT(NAME)
-----------
          0
 
SQL> select count(name) from t1 where name = null;  因为count不统计null值,所以为0
 
COUNT(NAME)
-----------
          0
 
SQL> select nvl(name, 'nobody') from t1;    如果name栏位值是NULL,则返回nobody字符
 
NVL(NAME,'NOBODY')
------------------
john
nobody
nobody
jash
kode
 
SQL> select count(nvl(name, 'nobody')) from t1; 统计name有多少值(由于NULL记录被nobody替换了)
 
COUNT(NVL(NAME,'NOBODY'))
-------------------------
                        5
 
SQL>

通过例子,count的作用就不说了,常见的就像例子的用法。下面说下NVL这个函数,下面的文字来源于百度百科: 

NVL的概念:

Oracle/PLSQL中的一个函数。   

格式为:NVL( string1, replace_with)   

功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数的都为NULL ,则返回NULL。   

注意事项: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


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值