>>与软件开发有关的知识:操作系统,数据库,网络通信等 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 20580 个阅读者 刷新本主题
 * 贴子主题:  SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2019-08-18 21:14:06     消息  查看  搜索  好友  邮件  复制  引用

  

SQL  NULL 函数

SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数

     请看下面的 "Products" 表:

    
P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 Jarlsberg 10.45 16 15
2 Mascarpone 32.56 23
3 Gorgonzola 15.67 9 20


     假如 "UnitsOnOrder" 是可选的,而且可以包含 NULL 值。

     我们使用下面的 SELECT 语句:

    SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
    FROM Products

     在上面的范例中,如果有 "UnitsOnOrder" 值是 NULL,那么结果是 NULL。

    微软的 ISNULL() 函数用于规定如何处理 NULL 值。

    NVL()、IFNULL() 和 COALESCE() 函数也可以达到相同的结果。

    在这里,我们希望 NULL 值为 0。

   下面,如果 "UnitsOnOrder" 是 NULL,则不会影响计算,因为如果值是 NULL 则 ISNULL() 返回 0:

              SQL Server / MS Access

    SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
    FROM Products

             Oracle

    Oracle 没有 ISNULL() 函数。不过,我们可以使用 NVL() 函数达到相同的结果:

    SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
    FROM Products

             MySQL

         MySQL 也拥有类似 ISNULL() 的函数。不过它的工作方式与微软的 ISNULL() 函数有点不同。

         在 MySQL 中,我们可以使用 IFNULL() 函数,如下所示:

     SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
     FROM Products

             或者我们可以使用 COALESCE() 函数,如下所示:

     SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
     FROM Products

    




程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-12 11:28:06 重新编辑]
  Java面向对象编程-->Swing组件(上)
  JavaWeb开发-->JavaWeb应用入门(Ⅱ)
  JSP与Hibernate开发-->第一个helloapp应用
  Java网络编程-->基于UDP的数据报和套接字
  精通Spring-->绑定表单
  Vue3开发-->Vue组件开发高级技术
  SQL查询语句练习题
  Linux文件系统误装入到Ocfs2文件系统的数据卷上的解决过程
  MySQL——mmm(Master-Master replication managerfor Mysql)...
  回表与覆盖索引
  MySQL的所有函数的用法
  MySQL 连接
  MySQL 管理
  SQL常用命令快速参考手册
  SQL PRIMARY KEY 约束
  MySQL的数据处理函数
  Linux 云服务器
  网络运维 - 你与真相就差一层窗户纸
  Service Mesh 落地负责人亲述:蚂蚁金服双十一四大考题
  程序员必须掌握的核心算法有哪些?
  Java 操作系统篇
  更多...
 IPIP: 已设置保密
树形列表:   
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。