SQL Server -- SQL NULL值,ISNull(),Oracal NVL(),MYSQL IFNULL(),COALESCE()
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()相关推荐
- mysql异常关闭7034,SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数
SQL NULL 函数 SQL ISNULL().NVL().IFNULL() 和 COALESCE() 函数 请看下面的 "Products" 表: P_Id ProductNa ...
- sqlisnull mysql_SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数
SQL NULL 函数 SQL ISNULL().NVL().IFNULL() 和 COALESCE() 函数 请看下面的 "Products" 表: P_Id ProductNa ...
- 从sqlserver中数据写入mysql_[SQL Server]SQL Server数据库中如何返回INSERT INTO语句插入/写入数据后的记录值(比如ID等)?...
问题描述 SQL Server数据库中,有时候当我们使用INSERT INTO语句写入数据后,需要返回写入数据对应的自增ID或者GUID,以便根据此记录进行后续的操作.那么SQL语句如何实现返回记录值 ...
- sql如何处理null值_如何正确处理SQL中的NULL值
sql如何处理null值 前言 (Preface) A friend who has recently started learning SQL asked me about NULL values ...
- SQL中的Null值
为什么80%的码农都做不了架构师?>>> Null是表示一种"未知"的类型,除了SQL已定义的数据类型外其他都是"未知"的类型. Nul ...
- 利用Flash读取SQL Server数据库的值
本节我们来练习用 Flash读取SQL Server数据库中的值,思路如下:用 ASP .NET连接读取数据库,并生成XML列表,Flash去读取XML列表并且格式化结果显示在组件中. 在Visual ...
- 【SQL】含有NULL值的排序
查询结果中有NULL值,当进行升序排序时,NULL值默认为"最大值",排在最后面.要想改变NULL值的显示顺序,只需要在SQL语句后面加上NULLS FIRST(排在前面),NUL ...
- .NET编程和SQL Server ——Sql Server 与CLR集成
一.SQL Server 为什么要与CLR集成 1. SQL Server 提供的存储过程.函数等十分有限,经常需要外部的代码来执行一些繁重的移植: 2.与CLR集成可将原本需要独立的程序来实现的功能 ...
- SQL Server SQL高级查询语句小结(转)
--select select * from student; --all 查询所有 select all sex from student; --distinct 过滤重复 select disti ...
最新文章
- 【Qt】Qt再学习(二):Bars Example(Q3DBars)
- 强势推荐8个顶级好用的软件,堪称神器
- nodejs安装及npm模块插件安装路径配置
- 2017-5-4 进程
- NodeJs学习笔记002--npm常用命令详解
- 一步一步重构柔性数组和智能指针
- 1250. Sea Burial
- LINUX编译json-c错误的解决:autoreconf找不到,json_tokener.c报错
- CSS权威指南 -- 第一章 CSS和文档
- 集线器与交换机的区别
- html如何制作图片蒙版,如何制作遮罩蒙版手机照片?详细图文教程
- excel文件被写保护怎么解除_实用解除常用文件word、excel的写保护
- 超详细讲解:数据库的备份与数据恢复方法举例与说明(完全备份、差异备份、增量备份)
- python表示倍数_python输出倍数
- md笔记上传到CSDN---Typora+SMMS+PicGo
- 对挣钱与財富等三个问题的思考
- HTTP协议与HTTPS协议的区别
- 《JavaScript百炼成仙》续集01. let强者,竟恐怖如斯
- php实现指纹识别,CMS识别(Web指纹识别)扫描器开发
- ISE14.7用自带XST综合时:ERROR:NgdBuild:604