SQL----coalesce函数详解

2021/11/25 2:12:05

本文主要是介绍SQL----coalesce函数详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • coalesce函数
    • 背景:
    • 语法:
        • COALESCE ( expression,value1,value2……,valuen)
    • 流程:
    • 举例:
    • 应用 1 :进行空值处理
        • 查询学生成绩,如果查不到,则赋值为0
    • 应用 2 :进行默认处理
        • 返回人员的“重要日期”
      • if( , ,)函数也可以


coalesce函数

背景:

  • 主流数据库系统都支持COALESCE()函数, MYSQL、MSSQLServer、DB2、Oracle:
  • 这个函数主要用来进行空值处理,

语法:

COALESCE ( expression,value1,value2……,valuen)

COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。

COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。

流程:

  • 如果expression不为空值则返回expression;否则判断value1是否是空值,
  • 如果value1不为空值则返回value1;否则判断value2是否是空值,
  • 如果value2不为空值则返回value2;……以此类推,
  • 如果所有的表达式都为空值,则返回NULL。

举例:

在这里插入图片描述
在这里插入图片描述

应用 1 :进行空值处理

查询学生成绩,如果查不到,则赋值为0

select id,score,coalesce(score, 0) as score_act from test;

在这里插入图片描述

应用 2 :进行默认处理

返回人员的“重要日期”

  1. 如果出生日期不为空则将出生日期做为“重要日期”

  2. 如果出生日期为空则判断注册日期是否为空,如果注册日期不为空则将注册日期做为“重要日期”,

  3. 如果注册日期也为空则将“2008年8月8日”做为“重要日期”。

SELECT FName,FBirthDay,FRegDay, 
COALESCE(FBirthDay,FRegDay,'2008-08-08')  AS ImportDay  
FROM T_Person 

if( , ,)函数也可以

SELECT FName,FBirthDay,FRegDay, 
IF(FName IS NULL,IF(FBirthDay IS NULL,'2008-08-08',FBirthDay ), FName) AS ImportDay  
FROM T_Person 


这篇关于SQL----coalesce函数详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程