SELECT COALESCE(表达式1, 表达式2, ...);
CREATE TABLE Employees (
employee_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
department_id INT,
salary DECIMAL(10, 2)
);
INSERT INTO Employees VALUES
(1, 'Alice', 'Johnson', 1, 50000.00),
(2, 'Bob', NULL, 2, NULL),
(3, 'Charlie', 'Brown', 1, 60000.00),
(4, 'David', 'Clark', 2, 55000.00),
(5, 'Eva', 'Jones', 1, NULL);
-- 1. 返回员工 'Bob' 的薪水,如果为NULL,则返回默认值 0.00
SELECT COALESCE(salary, 0.00) AS adjusted_salary
FROM Employees
WHERE first_name = 'Bob';
-- 注释:返回员工 'Bob' 的薪水,如果为NULL,则返回默认值 0.00
-- 2. 返回员工 'Eva' 的薪水,如果为NULL,则返回默认值 0.00
SELECT COALESCE(salary, 0.00) AS adjusted_salary
FROM Employees
WHERE first_name = 'Eva';
-- 注释:返回员工 'Eva' 的薪水,如果为NULL,则返回默认值 0.00
-- 1. 返回员工 'Bob' 的薪水,如果为NULL,则返回默认值 0.00
SELECT COALESCE(salary, 0.00) AS adjusted_salary
FROM Employees
WHERE first_name = 'Bob';
-- 结果:
/*
| adjusted_salary |
|------------------|
| 0.00 |
*/
-- 2. 返回员工 'Eva' 的薪水,如果为NULL,则返回默认值 0.00
SELECT COALESCE(salary, 0.00) AS adjusted_salary
FROM Employees
WHERE first_name = 'Eva';
-- 结果:
/*
| adjusted_salary |
|------------------|
| 0.00 |
*/
-- 错误示例:COALESCE函数需要至少一个参数
SELECT COALESCE();
-- 错误原因:COALESCE函数至少需要一个参数
-- 错误示例:使用不同数据类型的参数
SELECT COALESCE(salary, 'Not Available') AS adjusted_salary
FROM Employees;
-- 错误原因:COALESCE函数的所有参数应该具有相同的数据类型