>>与软件开发有关的知识:操作系统,数据库,网络通信等 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 20812 个阅读者 刷新本主题
 * 贴子主题:  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应用中访问Web服务
  JSP与Hibernate开发-->Java对象持久化技术概述
  Java网络编程-->安全网络通信
  精通Spring-->通过Vuex进行状态管理
  Vue3开发-->Vue CLI脚手架工具
  Linux系统的五种IO模型
  SSL知识简介
  MySQL索引原理 - 秋慕云
  Zabbix中文使用手册
  MongoDB高手进阶指南
  老生常谈!数据库如何存储时间?你真的知道吗?
  SQL AUTO INCREMENT 字段
  SQL CHECK 约束
  DTD 验证
  CentOS7.5使用mysql_multi方式安装MySQL5.7.28多实例
  数据库设计(一)——数据库设计-生命不息,奋斗不止
  关系型数据库全表扫描分片详解
  深入认识二进制序列化--记一次生产事故的思考
  TCP三次握手和四次挥手以及11种状态
  Mysql支持的数据类型(总结)
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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