From: http://www.w3school.com.cn/sql/sql_isnull.asp

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

请看下面的 "Products" 表:

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 computer 699 25 15
2 printer 365 36
3 telephone 280 159 57

假如 "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

From: http://www.w3school.com.cn/sql/sql_null_values.asp

NULL 值是遗漏的未知数据。

默认地,表的列可以存放 NULL 值。

本章讲解 IS NULL 和 IS NOT NULL 操作符。

SQL NULL 值

如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。

NULL 值的处理方式与其他值不同。

NULL 用作未知的或不适用的值的占位符。

注释:无法比较 NULL 和 0;它们是不等价的。

SQL 的 NULL 值处理

请看下面的 "Persons" 表:

Id LastName FirstName Address City
1 Adams John London
2 Bush George Fifth Avenue New York
3 Carter Thomas Beijing

假如 "Persons" 表中的 "Address" 列是可选的。这意味着如果在 "Address" 列插入一条不带值的记录,"Address" 列会使用 NULL 值保存。

那么我们如何测试 NULL 值呢?

无法使用比较运算符来测试 NULL 值,比如 =, <, 或者 <>。

我们必须使用 IS NULL 和 IS NOT NULL 操作符。

SQL IS NULL

我们如何仅仅选取在 "Address" 列中带有 NULL 值的记录呢?

我们必须使用 IS NULL 操作符:

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NULL

结果集:

LastName FirstName Address
Adams John
Carter Thomas

提示:请始终使用 IS NULL 来查找 NULL 值。

SQL IS NOT NULL

我们如何选取在 "Address" 列中不带有 NULL 值的记录呢?

我们必须使用 IS NOT NULL 操作符:

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NOT NULL

结果集:

LastName FirstName Address
Bush George Fifth Avenue

在下一节中,我们了解 ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数。

转载于:https://blog.51cto.com/57388/1868537

SQL Server -- SQL NULL值,ISNull(),Oracal NVL(),MYSQL IFNULL(),COALESCE()相关推荐

  1. mysql异常关闭7034,SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数

    SQL NULL 函数 SQL ISNULL().NVL().IFNULL() 和 COALESCE() 函数 请看下面的 "Products" 表: P_Id ProductNa ...

  2. sqlisnull mysql_SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数

    SQL NULL 函数 SQL ISNULL().NVL().IFNULL() 和 COALESCE() 函数 请看下面的 "Products" 表: P_Id ProductNa ...

  3. 从sqlserver中数据写入mysql_[SQL Server]SQL Server数据库中如何返回INSERT INTO语句插入/写入数据后的记录值(比如ID等)?...

    问题描述 SQL Server数据库中,有时候当我们使用INSERT INTO语句写入数据后,需要返回写入数据对应的自增ID或者GUID,以便根据此记录进行后续的操作.那么SQL语句如何实现返回记录值 ...

  4. sql如何处理null值_如何正确处理SQL中的NULL值

    sql如何处理null值 前言 (Preface) A friend who has recently started learning SQL asked me about NULL values ...

  5. SQL中的Null值

    为什么80%的码农都做不了架构师?>>>    Null是表示一种"未知"的类型,除了SQL已定义的数据类型外其他都是"未知"的类型. Nul ...

  6. 利用Flash读取SQL Server数据库的值

    本节我们来练习用 Flash读取SQL Server数据库中的值,思路如下:用 ASP .NET连接读取数据库,并生成XML列表,Flash去读取XML列表并且格式化结果显示在组件中. 在Visual ...

  7. 【SQL】含有NULL值的排序

    查询结果中有NULL值,当进行升序排序时,NULL值默认为"最大值",排在最后面.要想改变NULL值的显示顺序,只需要在SQL语句后面加上NULLS FIRST(排在前面),NUL ...

  8. .NET编程和SQL Server ——Sql Server 与CLR集成

    一.SQL Server 为什么要与CLR集成 1. SQL Server 提供的存储过程.函数等十分有限,经常需要外部的代码来执行一些繁重的移植: 2.与CLR集成可将原本需要独立的程序来实现的功能 ...

  9. SQL Server SQL高级查询语句小结(转)

    --select select * from student; --all 查询所有 select all sex from student; --distinct 过滤重复 select disti ...

最新文章

  1. 【Qt】Qt再学习(二):Bars Example(Q3DBars)
  2. 强势推荐8个顶级好用的软件,堪称神器
  3. nodejs安装及npm模块插件安装路径配置
  4. 2017-5-4 进程
  5. NodeJs学习笔记002--npm常用命令详解
  6. 一步一步重构柔性数组和智能指针
  7. 1250. Sea Burial
  8. LINUX编译json-c错误的解决:autoreconf找不到,json_tokener.c报错
  9. CSS权威指南 -- 第一章 CSS和文档
  10. 集线器与交换机的区别
  11. html如何制作图片蒙版,如何制作遮罩蒙版手机照片?详细图文教程
  12. excel文件被写保护怎么解除_实用解除常用文件word、excel的写保护
  13. 超详细讲解:数据库的备份与数据恢复方法举例与说明(完全备份、差异备份、增量备份)
  14. python表示倍数_python输出倍数
  15. md笔记上传到CSDN---Typora+SMMS+PicGo
  16. 对挣钱与財富等三个问题的思考
  17. HTTP协议与HTTPS协议的区别
  18. 《JavaScript百炼成仙》续集01. let强者,竟恐怖如斯
  19. php实现指纹识别,CMS识别(Web指纹识别)扫描器开发
  20. ISE14.7用自带XST综合时:ERROR:NgdBuild:604

热门文章

  1. wireshark全网过虑最全规则
  2. 7.16模块及软件开发目录规范
  3. Linux增加开放端口号
  4. 网页弹出框----播放视频
  5. 理论与实践中的 C# 内存模型
  6. WinFrm程序使用的图片展示控件.带删除的
  7. 为什么Nginx的性能要比Apache高得多?
  8. 从上云到云原生,如何用新技术应对突发事件?
  9. 过去的2018年,400000粉丝用指尖投票,选出了这10本技术书
  10. 数据看穿一生:前半生赚钱养娃,后半生赚钱买命