MySQL - COALESCE()函数

MySQL - COALESCE()函数 首页 / MySQL入门教程 / MySQL - COALESCE()函数

MySQL中的COALESCE()函数用于返回指定系列表达式中的第一个 non-null 值。如果此函数计算列表的所有值均为null,或者找不到任何非null值,则它将返回 NULL

语法

以下是在MySQL中使用COALESCE()函数的语法:

COALESCE(value1, value2, value3....., valueN);

在以上语法中,无涯教程可以看到该函数带有许多参数,并且当它找到非null的第一个值时,它将返回该非null值。有时列表的所有值都为空;在这种情况下,它将返回NULL。

COALESCE()函数类似于IF_ELSE语句,如下所示:

  IF (value1!= NULL) THEN
     result = value1;
  ELSIF (value2 != NULL) THEN
     result = value2;
  ELSE
     result = NULL;
  END IF;

此函数仅接受一个参数,该参数是具有各种值的列表。

value1,value2,…..,valueN   -  它指定列表的值以在输出中返回非null或NULL值。

MySQL版本支持

COALESCE()函数可以支持以下 MySQL版本:

  • MySQL 8.0
  • MySQL 5.7
  • MySQL 5.6
  • MySQL 5.5
  • MySQL 5.1
  • MySQL 5.0
  • MySQL 4.1
  • MySQL 4.0

通过以下示例了解 MySQL COALESCE()函数。可以直接将COALESCE()函数与 SELECT语句一起使用。

例子1

SELECT COALESCE(NULL, 'A', 'B', NULL); 

输出

当无涯教程在列表上实现合并函数时,它将给出输出" A",因为它是列表的第一个非空值。

例子2

SELECT COALESCE('Mango', 'Apple', 'Orange', NULL);

输出

在列表上实现合并函数时,它将给出输出" Mango",因为它是列表的第一个非空值。

例子3

SELECT COALESCE(NULL, 1, 2, 'MySQL', NULL, 'JAVA', NULL); 

输出

在列表上实现合并函数时,它将返回数值" 1",因为它是列表的第一个非空值。

例子4

SELECT COALESCE(NULL, NULL, 'learnfk', NULL); 

输出

在列表上实现合并函数时,它将返回" learnfk",因为它是列表的第一个非空值。

例子5

在此示例中,无涯教程将了解COALESCE()函数如何在表数据上工作。首先,使用以下语句创建表"employee":

CREATE TABLE employee (
  Emp_id INT NOT NULL,
  Name VARCHAR(45) NULL,
  Designation VARCHAR(45) NULL,
  Phone VARCHAR(45) NULL,
  Mobile VARCHAR(45) NULL,
  Office VARCHAR(45) NULL,
  PRIMARY KEY (Emp_id)
);

接下来,使用 INSERT语句将数据添加到表中,如下所示:

INSERT INTO employee(Emp_id, Name, Designation, Phone, Mobile, Office) 
VALUES (1, 'Peter', 'Engineer', '101-101-101', '111-111-111', '100-100-100'),
(2, 'Joseph', 'Developer', '201-201-201', '222-222-222', NULL),
(3, 'John', 'Leader', '301-301-301', NULL, '300-300-300'),
(4, 'Stephen', 'Scientist', '401-401-401', '444-444-444', '400-400-400'),
(5, 'Suzi', 'Carpenter', NULL, '555-555-555', '500-500-500'),
(6, 'Bob', 'Actor', '601-601-601', '666-666-666', '600-600-600'),
(7, 'Donald', 'Engineer', NULL, NULL, NULL);

执行以下查询以显示表数据:

SELECT * FROM employee;

将获得以下输出:

MySQL COALESCE() Function

现在,执行以下使用COALESCE()函数的语句,如果员工具有所有联系电话,则仅返回手机号码:

SELECT Emp_id, Name, Designation, COALESCE(Mobile, Office, Phone) FROM employee;

它将给出以下输出:

MySQL COALESCE() Function

如果员工只有办公室或移动联系人,则执行此语句以返回办公室号码。如果找不到办公室号码,请返回电话联系。

SELECT Emp_id, Name, Designation, Mobile, Office, Phone, COALESCE(Office, Mobile) FROM employee;

无涯教程将得到如下输出:

MySQL COALESCE() Function

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

编译原理之美 -〔宫文学〕

Java业务开发常见错误100例 -〔朱晔〕

跟月影学可视化 -〔月影〕

Redis核心技术与实战 -〔蒋德钧〕

深度学习推荐系统实战 -〔王喆〕

人人都用得上的写作课 -〔涵柏〕

高楼的性能工程实战课 -〔高楼〕

操作系统实战45讲 -〔彭东〕

商业思维案例笔记 -〔曹雄峰〕

好记忆不如烂笔头。留下您的足迹吧 :)