【MySQL】COALESCE( )函数
COALESCE()函数
主流数据库系统都支持COALESCE()函数,这个函数主要用来进行空值处理,其参数格式如下:
COALESCE ( expression,value1,value2……,valuen)
COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。
COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。
如果expression不为空值则返回expression;否则判断value1是否是空值,
如果value1不为空值则返回value1;否则判断value2是否是空值,
如果value2不为空值则返回value2;……以此类推,
如果所有的表达式都为空值,则返回NULL。
我们将使用COALESCE()函数完成下面的功能,返回人员的“重要日期”:
如果出生日期不为空则将出生日期做为“重要日期”,如果出生日期为空则判断注册日期是否为空,如果注册日期不为空则将注册日期做为“重要日期”,如果注册日期也为空则将“2008年8月8日”做为“重要日期”。实现此功能的SQL语句如下:
MYSQL、MSSQLServer、DB2:
SELECT FName,FBirthDay,FRegDay,
COALESCE(FBirthDay,FRegDay,'2008-08-08') AS ImportDay
FROM T_Person
Oracle:
SELECT FBirthDay,FRegDay,
COALESCE(FBirthDay,FRegDay,TO_DATE('2008-08-08', 'YYYY-MM-DD HH24:MI:SS'))
AS ImportDay
FROM T_Person
执行完毕我们就能在输出结果中看到下面的执行结果:
FName FBirthDay FRegDay ImportDay
Tom 1981-03-22 00:00:00 1998-05-01 00:00:00 1981-03-22 00:00:00
Jim 1987-01-18 00:00:00 1999-08-21 00:00:00 1987-01-18 00:00:00
Lily 1987-11-08 00:00:00 2001-09-18 00:00:00 1987-11-08 00:00:00
Kelly 1982-07-12 00:00:00 2000-03-01 00:00:00 1982-07-12 00:00:00
Sam 1983-02-16 00:00:00 1998-05-01 00:00:00 1983-02-16 00:00:00
Kerry <NULL> 1999-03-01 00:00:00 1999-03-01 00:00:00
Smith <NULL> <NULL> 2008-08-08
BillGates 1972-07-18 00:00:00 1995-06-19 00:00:00 1972-07-18 00:00:00
这里边最关键的就是Kerry和Smith这两行,可以看到这里的计算逻辑是完全符合我们的
需求的。
COALESCE()函数可以用来完成几乎所有的空值处理,不过在很多数据库系统中都提供了它的简化版,这些简化版中只接受两个变量,其参数格式如下:
MYSQL:
IFNULL(expression,value)
MSSQLServer:
ISNULL(expression,value)
Oracle:
NVL(expression,value)
这几个函数的功能和COALESCE(expression,value)是等价的。
比如SQL语句用于返回人员的“重要日期”,如果出生日期不为空则将出生日期做为“重要日期”,如果出生日期为空则返回注册日期的值:
MYSQL:
SELECT FBirthDay,FRegDay,
IFNULL(FBirthDay,FRegDay) AS ImportDay
FROM T_Person
MSSQLServer:
SELECT FBirthDay,FRegDay,
ISNULL(FBirthDay,FRegDay) AS ImportDay
FROM T_Person
Oracle:
SELECT FBirthDay,FRegDay,
NVL(FBirthDay,FRegDay) AS ImportDay
FROM T_Person
原文参考:https://blog.csdn.net/u010031649/article/details/38781757#commentsedit
【MySQL】COALESCE( )函数相关推荐
- MySQL coalesce()函数
转载自 MySQL coalesce()函数 MySQL COALESCE函数介绍 下面说明了COALESCE函数语法: COALESCE(value1,value2,...); COALESCE函 ...
- Mysql coalesce()函数认识和用法
Mysql coalesce()函数认识和用法 coalesce()解释:返回参数中的第一个非空表达式(从左向右): 鉴于在 mysql中没有nvl()函数, 我们用coalesce()来代替. ...
- MySql coalesce函数
语法 coalesce(str1,str2,str3,-,default) str1,str2,str3:参数,但是最终只会返回最左边那个非空参数的值. default:当前面所有的表达式值都为NUL ...
- mysql coalesce函数用法,SQL Server COALESCE函数详解及实例
SQL Server COALESCE函数详解 很多人知道ISNULL函数,但是很少人知道Coalesce函数,人们会无意中使用到Coalesce函数,并且发现它比ISNULL更加强大,其实到目前为止 ...
- mysql coalesce函数_mysql coalesce函数
COALESCE函数从值列表中返回第一个非NULL的值,当遇到NULL值时将其替换为0. coalesce(str1,str2....); e.g. 需要在表中查出所有比'WARD'提成(COMM ...
- mysql coalesce函数用法_MySQL coalesce函数用法说明(转)
在mysql中,其实有不少方法和函数是很有用的,一个叫coalesce的,作用是将返回传入的参数中第一个非null的值,比如 SELECT COALESCE(NULL, NULL, 1); -- Re ...
- mysql异常关闭7034,SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数
SQL NULL 函数 SQL ISNULL().NVL().IFNULL() 和 COALESCE() 函数 请看下面的 "Products" 表: P_Id ProductNa ...
- mysql中discount用法_MySQL 技巧:COALESCE 函数的使用
COALESCE() 函数可以接收多个参数,并返回第一个非 NULL 的参数.如果所有参数都为 NULL,则 COALESCE() 函数返回 NULL. 例如: COALESCE(NULL, 1, 2 ...
- mysql里COALESCE_MySQL 技巧:COALESCE 函数的使用
COALESCE() 函数可以接收多个参数,并返回第一个非 NULL 的参数.如果所有参数都为 NULL,则 COALESCE() 函数返回 NULL. 例如: COALESCE(NULL, 1, 2 ...
最新文章
- Linux中与进程终止相关的信号SIGTERM,SIGKILL,SIGINT
- eval语法报错 ie10_js eval 语法错误 急急急
- Apriori算法、FP-Growth算法、顺序分析、PrefixSpan算法
- vs界面竖线光标变成灰色方块,输入时替代已有字符
- 开源websocket
- uva 138——Street Numbers
- (计算机组成原理)第五章中央处理器-第四节4:微程序控制单元设计
- 调色师必须了解的LUT知识
- 汉字字符内码查询_计算机等级考试查询系统
- SQL Server-【知识与实战VI】索引信息
- cocos2d-x由Jni实现Java与C++打电话给对方
- win10自定义使用Mac的鼠标样式
- tp6配置日志 - nginx下配置Thinkphp6网站 - tp6实现简单路由跳转
- 攀升笔记本电脑P1X Deepin20.3安装 RTL8821CE RTL8152无线网卡驱动
- 转型不忘初心,决定一个高端存储厂商的未来
- Python 学习笔记 变量 xxx XXX
- 从软件保护到软件授权
- 【C语言】比较两个数组中是否有相同的元素
- 8c sql手册 五
- Day02:基本IO操作
热门文章
- 连入网络中的计算机必须都是,12计算机网络判断题.doc
- 【java毕业设计】基于javaEE+SSM+MySql的个人博客系统设计与实现(毕业论文+程序源码)——个人博客系统
- python中常用于输出信息的语句函数是print括号_第十四课我们研究一下常用的print()函数,翻看了一下Python宝典...
- html div background-image,css3背景background-image
- Actor模型与传统模型
- 提取 Office 2016 工具栏图标
- js / java 文档对比
- 旋转曲面的面积——微元法【】
- 曲面研究的两个基本问题、旋转曲面、柱面、二次曲面
- 主动扫描和被动扫描的区别