MySQL COALESCE()函数

MySQL 中的 COALESCE() 函数用于返回指定表达式系列中的第一个非空值。如果此函数评估列表的所有值都为空,或者它没有找到任何非空值,则返回NULL。

一、MySQL COALESCE()函数 语法

以下是在 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:它指定列表的值以在输出中返回非空或空值。

二、MySQL COALESCE()函数 版本支持

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()函数 示例一

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

输出结果:

当我们在列表上实现合并函数时,它会给出输出“A”,因为它是列表的第一个非空值。

四、MySQL COALESCE()函数 示例二

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

输出结果:

当我们在列表上实现 coalesce 函数时,它会给出输出“Mango”,因为它是列表的第一个非空值。

五、MySQL COALESCE()函数 示例三

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

输出结果:

当我们对列表执行合并函数时,它会返回数值“1”,因为它是列表的第一个非空值。

六、MySQL COALESCE()函数 示例四

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

输出结果:

当我们在列表上实现 coalesce 函数时,它会返回“javatpoint”,因为它是列表的第一个非空值。

让我们在 MySQL 命令行工具中查看上述所有示例:

七、MySQL COALESCE()函数 示例五

在此示例中,我们将了解 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)  
);  

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

SELECT * FROM employee;  

我们将看到以下输出:

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

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

输出结果为:

如果员工只有办公室或移动联系人,则执行返回办公室号码的语句。当它没有找到办公室号码时,返回电话联系。

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

输出结果为:

八、IFNULL() 与 COALESCE() 函数

IFNULL() 与 COALESCE() 函数 区别看以下表格:

IFNULL() COALESCE()
IFNULL() 函数只接受两个表达式。执行评估后,如果该表达式不为 NULL,则返回第一个表达式;否则,它返回第二个表达式。 COALESCE() 函数返回指定表达式系列中的第一个非空值。如果此函数评估列表的所有值都为空,或者它没有找到任何非空值,则返回 NULL。

热门文章

优秀文章