SQL高级教程(三十)- - SQL NULL 函数
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
SQL高级教程(三十)- - SQL NULL 函数相关推荐
- MYSQL语句大全(SQL 高级教程)【下】
SQL 高级教程 Drop 撤销索引.表以及数据库 DROP INDEX 命令删除表格中的索引 mysql语法: ALTER TABLE table_name DR ...
- SQL 高级教程:SQL BETWEEN 操作符
SQL 高级教程:SQL BETWEEN 操作符 BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围. BETWEEN 操作符 操作符 BETWEEN - AND 会 ...
- MYSQL语句大全(SQL 高级教程)【上】
SQL 高级教程 Top TOP 子句用于规定要返回的记录的数目. 对于拥有数千条记录的大型表来说,TOP 子句是非常有用的 ...
- SQL系列(三)SQL使用的旁枝末节
SQL系列(三)SQL使用的旁枝末节 首先,来揭晓上期的答案.方法不唯一,符合结果即可- -- 常规方法 with temp as (select 2 as st,5 as enunion allse ...
- vba ado 执行多条mysql 语句,Excel VBA+ADO+SQL入门教程003:SQL查询中字段技巧的总结...
原标题:Excel VBA+ADO+SQL入门教程003:SQL查询中字段技巧的总结 本章概要: 1,几个概念 1.1, 数据库和Excel工作簿 1.2,数据表和Excel工作表 1.3,记录.字段 ...
- mysql sql高级教程_SQL高级教程
一.top子句 top子句用于规定要返回的记录的数目 并非所有数据库系统都支持top子句 # sqlserverSELECT TOP number|percent column_name(s) FRO ...
- SQL Server-聚焦深入理解动态SQL查询(三十二)
前言 之前有园友一直关注着我快点出SQL Server性能优化系列,博主我也对性能优化系列也有点小期待,本来打算利用周末写死锁以及避免死锁系列的接着进入SQL Server优化系列,但是在工作中长时间 ...
- Directx11教程三十之ProjectiveTexturing(投影纹理)
这节教程是介绍有关ProjectiveTexturing(投影纹理)技术的,结构如下 一,ProjectiveTexturing(投影纹理)的简介. ProjectiveTexturing(投影纹理) ...
- SQL Prompt教程:使用SQL Prompt查找SET NOCOUNT代码问题
SQL Prompt是一款实用的SQL语法提示工具.SQL Prompt根据数据库的对象名称.语法和代码片段自动进行检索,为用户提供合适的代码选择.自动脚本设置使代码简单易读–当开发者不大熟悉脚本时尤 ...
- vba mysql·教程_Excel VBA ADO SQL入门教程004:SQL中的Excel表
1. 上期我们聊了SQL常用查询语句中的字段查询,其简化版语法如下: SELECT 字段名 FROM 表名 当时我们说,FROM关键词指明了要获取字段信息的表的名称.倘若数据源是Excel表格,则需要 ...
最新文章
- python popen阻塞_对Python subprocess.Popen子进程管道阻塞详解
- 从消费端到企业端,从设备到数据:物联网市场的爆发式增长
- Android视图组成View
- Seek the Name, Seek the Fame POJ - 2752 (理解KMP函数的失配)既是S的前缀又是S的后缀的子串
- Vmware中的centos虚拟机克隆之后没有eth0
- js传参不是数字_js调用函数时传入的参数个数与函数定义时的参数个数不符时的操作...
- mongodb不等于某个值_MongoDB的安装以及基本增删改查命令
- RabbitMQ 集群搭建_02_rpm版本(linux环境)
- 作者:谢华美(1976-),男,就职于中国人民银行征信中心数据部
- 解决Docker安装MySQL不区分大小写问题
- c# 十六进制转为字节_如何在C#中将具有十六进制内容的字节数组转换为具有十进制的字符串...
- 模型微调------学习笔记
- 自动识别并汇总发票信息的智能机器人来啦!
- 关键点检测方法、人体姿态估计
- Xilinx ISERDESE2应用笔记及仿真实操
- 51单片机按键控制数码管显示0-9
- Node.js学习日记3
- Python爬虫-中华英才网登陆JS加密登陆
- css mix-blend,详解CSS3的mix-blend-mode属性
- 互联网摸鱼日报(2023-01-26)
热门文章
- 卷积法求解系统的零状态响应_因果系统的零状态响应的一种简易计算方法
- Python学习:简单的python “hello,world”程序
- 桌面上打开计算机有延迟感觉,电脑中右击操作反应慢如何解决|解决右键菜单弹出延迟的方法...
- 《科学》公布2021年度十大科学突破!
- pe装机时看不到电脑的硬盘
- 用python写一段计算autocad多段线长度的代码
- 交换机和路由器的基本配置
- 砺鹰教育之四川财经职业学院讲座——我为什么选择创业?
- XP sp3 安装Step7 V5.5和WinCC V7.0记录(仅用于个人)
- 【Eclipse下载与安装教程】