>>与软件开发有关的知识:操作系统,数据库,网络通信等 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 20534 个阅读者 刷新本主题
 * 贴子主题:  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面向对象编程-->图形用户界面(下)
  JavaWeb开发-->Web运作原理(Ⅰ)
  JSP与Hibernate开发-->通过JPA API检索数据
  Java网络编程-->客户端协议处理框架
  精通Spring-->Vue组件开发基础
  Vue3开发-->Vue组件开发高级技术
  TCP的三次握手建立链接和四次挥手释放链接
  一文读懂非关系型数据库(NoSQL)
  MySQL不推荐使用uuid或者雪花id作为主键
  如何成为写SQL高手
  数据库索引创建与优化
  SQL查询语句练习题
  mysql 表分区、按时间函数分区、删除分区、自动添加表分区
  SaltStack 自动化运维实战
  作为一个程序员,CPU的这些硬核知识你必须会!
  老生常谈!数据库如何存储时间?你真的知道吗?
  SQL AUTO INCREMENT 字段
  SQL的创建索引( CREATE INDEX) 语句的用法
  CentOS7.5使用mysql_multi方式安装MySQL5.7.28多实例
  Mysql提升效率的神器: 索引
  HTML5+JavaScript实现一个简单的音乐播放器
  更多...
 IPIP: 已设置保密
树形列表:   
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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