>>与软件开发有关的知识:操作系统,数据库,网络通信等 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 26910 个阅读者 刷新本主题
 * 贴子主题:  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开发-->Servlet技术详解(Ⅱ)
  JSP与Hibernate开发-->JPA API的高级用法
  Java网络编程-->用Swing组件展示HTML文档
  精通Spring-->通过Vuex进行状态管理
  Vue3开发-->Vue组件开发高级技术
  mysql 表分区、按时间函数分区、删除分区、自动添加表分区
  SaltStack 自动化运维实战
  DNS原理及其解析过程
  从原理到实战:如何通过布隆过滤器防止缓存击穿
  打开黑盒:从 MySQL架构设计出发,看它是如何执行一条SQL语句...
  MySQL 运算符的用法
  MySQL 删除数据表
  MySQL 删除数据库
  MySQL 安装
  SQL INSERT INTO SELECT 语句
  Windows 和 Mac的键盘快捷键汇总
  存储与虚拟主机管理
  HTML5+JavaScript实现一个简单的音乐播放器
  数据库设计(一)——数据库设计-生命不息,奋斗不止
  MySQL的开发必会的SQL语句
  更多...
 IPIP: 已设置保密
树形列表:   
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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