跳到主要内容

CASE

处理 IF/THEN 逻辑。它由至少一对 WHENTHEN 语句构成。每个 CASE 语句必须以 END 关键字结束。ELSE 语句是可选的,提供了一种捕获未在 WHENTHEN 语句中明确指定的值的方法。

语法

CASE
WHEN <condition_1> THEN <value_1>
[ WHEN <condition_2> THEN <value_2> ]
[ ... ]
[ ELSE <value_n> ]
END AS <column_name>

示例

此示例使用 CASE 语句对员工薪资进行分类,并展示了一个动态分配的列名 "SalaryCategory":

-- 创建示例表
CREATE TABLE Employee (
EmployeeID INT,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Salary INT
);

-- 插入一些示例数据
INSERT INTO Employee VALUES (1, 'John', 'Doe', 50000);
INSERT INTO Employee VALUES (2, 'Jane', 'Smith', 60000);
INSERT INTO Employee VALUES (3, 'Bob', 'Johnson', 75000);
INSERT INTO Employee VALUES (4, 'Alice', 'Williams', 90000);

-- 使用 CASE 语句添加新列 'SalaryCategory'
-- 根据薪资对员工进行分类
SELECT
EmployeeID,
FirstName,
LastName,
Salary,
CASE
WHEN Salary < 60000 THEN 'Low'
WHEN Salary >= 60000 AND Salary < 80000 THEN 'Medium'
WHEN Salary >= 80000 THEN 'High'
ELSE 'Unknown'
END AS SalaryCategory
FROM
Employee;

┌──────────────────────────────────────────────────────────────────────────────────────────┐
│ employeeid │ firstname │ lastname │ salary │ salarycategory │
├─────────────────┼──────────────────┼──────────────────┼─────────────────┼────────────────┤
1 │ John │ Doe │ 50000 │ Low │
2 │ Jane │ Smith │ 60000 │ Medium │
4 │ Alice │ Williams │ 90000 │ High │
3 │ Bob │ Johnson │ 75000 │ Medium │
└──────────────────────────────────────────────────────────────────────────────────────────┘
开始使用 Databend Cloud
低成本
快速分析
多种数据源
弹性扩展
注册