CASE... WHEN
SELECT...CASE...WHEN...THEN...是在SQL中用于进行条件判断和赋值的语句。
以下是一个代码示例:
sql
SELECT
column1,
column2,
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE result
END AS new_column
FROM
table_name;
解释:
- SELECT:表示要选取的字段或表达式。
- column1, column2:表示要选取的原始字段。
- CASE:表示开始一个CASE语句块。
- WHEN condition1 THEN result1:表示当condition1条件满足时,将
new_column
列赋值为result1。 - WHEN condition2 THEN result2:表示当condition2条件满足时,将
new_column
列赋值为result2。 - ELSE result:表示当上述所有条件都不满足时,默认将new_column列赋值为result。
- END AS new_column:表示结束CASE语句块,并将赋值后的结果命名为
new_column
。 - FROM table_name:表示从指定的表中进行查询操作。
需要注意的是,WHEN子句的条件可以是基于列的比较、函数操作、常量等,
根据具体需求来编写条件判断和赋值逻辑。
例如
sql
SELECT name, score,
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 80 THEN '良好'
WHEN score >= 70 THEN '及格'
ELSE '不及格'
END AS grade
FROM students;
将生成以下三列:
- 学生的姓名
name
- 分数
score
- 根据分数计算出的等级
grade