logo图片
MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
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;

参数说明

此函数仅接受一个参数,该参数是具有各种值的列表。
值1,值2...。,valueN: 它指定列表的值以返回输出中的非null或NULL值。
通过以下插图,我们可以更清楚地理解它:
案例1: COALESCE(NULL,NULL);
案例2: COALESCE(0,NULL);
在在这两种情况下,该函数始终返回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, 'lidihuo', null); 
输出
在列表上实现合并功能时,它将返回" lidihuo",因为它是列表中的第一个非空值。
让我们在MySQL命令行工具中查看上述所有示例:
MySQL COALESCE()函数

示例5

在此示例中,我们将了解如何COALESCE()函数对表数据起作用。首先,使用以下语句创建表" 员工":
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

IFNULL()与COALESCE()函数

这些函数之间的主要区别是:
IFNULL() COALESCE()
IFNULL()函数仅接受两个表达式。求值后,如果该表达式不为NULL,则返回第一个表达式;否则,它将返回第二个表达式。 COALESCE()函数在指定的表达式系列中返回第一个非空值。如果此函数计算列表的所有值均为null,或者找不到任何非null值,则返回NULL。

昵称: 邮箱:
Copyright © 2020 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4