Mysql 简明教程
MySQL - COALESCE() Function
有时候,表中的一条记录可能缺少用户无法填入 0 的数据。在这样的情况下,MySQL 允许用户用 NULL 值来填充该记录。
NULL 值只是数据库表中用于表示缺少的值或没有可插入数据的占位符。
The MySQL COALESCE() Function
MySQL COALESCE() 函数返回表达式列表中的第一个非 NULL 值。它将多个表达式作为参数,并返回第一个非 NULL 表达式的值。如果所有表达式都是 NULL,它将返回 NULL。
当 COALESCE() 函数用于 MySQL 表,其中参数表示需要比较的字段名称时,函数会比较这些列中相应的值,并检索第一个 NOT NULL 值。
Syntax
以下是 COALESCE() 函数的基本语法:
SELECT COALESCE (expression_1, expression_2, ..., expression_n)
FROM table_name;
Example
在以下查询中,我们正在从传递给 COALESCE() 函数的参数列表中检索第一个非 NULL 值:
SELECT COALESCE(NULL, NULL, 'Hello', 'Tutorialspoint')
AS RESULT;
Example
现在,让我们创建一个名为 “CUSTOMERS” 的表,以使用以下查询来存储客户的个人详细信息,包括姓名、年龄、地址和薪水:
CREATE TABLE CUSTOMERS (
ID INT NOT NULL,
NAME VARCHAR (20),
AGE INT,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2),
PRIMARY KEY(ID)
);
现在,使用如下所示的 INSERT 语句向此表中插入值:
INSERT INTO CUSTOMERS VALUES
(1, 'Ramesh', 32, NULL, NULL ),
(2, 'Khilan', 25, 'Delhi', NULL ),
(3, 'kaushik', 23, 'Kota', NULL ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'MP', NULL ),
(7, 'Muffy', 24, 'Indore', 10000.00 );
以下是获得的 CUSTOMERS 表:
现在,让我们使用 SELECT 语句检索一个包含 "NAME"、"AGE" 和 "SALARY" 列中值的结果集。我们还将 "AGE" 和 "SALARY" 作为参数传递给 COALESCE() 函数,并且返回值将显示在另一个名为 "RESULT" 的列中:
SELECT NAME, AGE, SALARY,
COALESCE(SALARY, AGE) RESULT
FROM CUSTOMERS;