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( )函数相关推荐

  1. MySQL coalesce()函数

    转载自  MySQL coalesce()函数 MySQL COALESCE函数介绍 下面说明了COALESCE函数语法: COALESCE(value1,value2,...); COALESCE函 ...

  2. Mysql coalesce()函数认识和用法

    Mysql coalesce()函数认识和用法 coalesce()解释:返回参数中的第一个非空表达式(从左向右):  鉴于在 mysql中没有nvl()函数, 我们用coalesce()来代替.   ...

  3. MySql coalesce函数

    语法 coalesce(str1,str2,str3,-,default) str1,str2,str3:参数,但是最终只会返回最左边那个非空参数的值. default:当前面所有的表达式值都为NUL ...

  4. mysql coalesce函数用法,SQL Server COALESCE函数详解及实例

    SQL Server COALESCE函数详解 很多人知道ISNULL函数,但是很少人知道Coalesce函数,人们会无意中使用到Coalesce函数,并且发现它比ISNULL更加强大,其实到目前为止 ...

  5. mysql coalesce函数_mysql coalesce函数

    COALESCE函数从值列表中返回第一个非NULL的值,当遇到NULL值时将其替换为0. coalesce(str1,str2....); e.g.   需要在表中查出所有比'WARD'提成(COMM ...

  6. mysql coalesce函数用法_MySQL coalesce函数用法说明(转)

    在mysql中,其实有不少方法和函数是很有用的,一个叫coalesce的,作用是将返回传入的参数中第一个非null的值,比如 SELECT COALESCE(NULL, NULL, 1); -- Re ...

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

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

  8. mysql中discount用法_MySQL 技巧:COALESCE 函数的使用

    COALESCE() 函数可以接收多个参数,并返回第一个非 NULL 的参数.如果所有参数都为 NULL,则 COALESCE() 函数返回 NULL. 例如: COALESCE(NULL, 1, 2 ...

  9. mysql里COALESCE_MySQL 技巧:COALESCE 函数的使用

    COALESCE() 函数可以接收多个参数,并返回第一个非 NULL 的参数.如果所有参数都为 NULL,则 COALESCE() 函数返回 NULL. 例如: COALESCE(NULL, 1, 2 ...

最新文章

  1. Linux中与进程终止相关的信号SIGTERM,SIGKILL,SIGINT
  2. eval语法报错 ie10_js eval 语法错误 急急急
  3. Apriori算法、FP-Growth算法、顺序分析、PrefixSpan算法
  4. vs界面竖线光标变成灰色方块,输入时替代已有字符
  5. 开源websocket
  6. uva 138——Street Numbers
  7. (计算机组成原理)第五章中央处理器-第四节4:微程序控制单元设计
  8. 调色师必须了解的LUT知识
  9. 汉字字符内码查询_计算机等级考试查询系统
  10. SQL Server-【知识与实战VI】索引信息
  11. cocos2d-x由Jni实现Java与C++打电话给对方
  12. win10自定义使用Mac的鼠标样式
  13. tp6配置日志 - nginx下配置Thinkphp6网站 - tp6实现简单路由跳转
  14. 攀升笔记本电脑P1X Deepin20.3安装 RTL8821CE RTL8152无线网卡驱动
  15. 转型不忘初心,决定一个高端存储厂商的未来
  16. Python 学习笔记 变量 xxx XXX
  17. 从软件保护到软件授权
  18. 【C语言】比较两个数组中是否有相同的元素
  19. 8c sql手册 五
  20. Day02:基本IO操作

热门文章

  1. 连入网络中的计算机必须都是,12计算机网络判断题.doc
  2. 【java毕业设计】基于javaEE+SSM+MySql的个人博客系统设计与实现(毕业论文+程序源码)——个人博客系统
  3. python中常用于输出信息的语句函数是print括号_第十四课我们研究一下常用的print()函数,翻看了一下Python宝典...
  4. html div background-image,css3背景background-image
  5. Actor模型与传统模型
  6. 提取 Office 2016 工具栏图标
  7. js / java 文档对比
  8. 旋转曲面的面积——微元法【】
  9. 曲面研究的两个基本问题、旋转曲面、柱面、二次曲面
  10. 主动扫描和被动扫描的区别