SQL SELECT CASE WHEN
时间: 2024-03-13 17:38:41 浏览: 69
SQL SELECT CASE WHEN语句是一种条件语句,它可以在SELECT语句中根据条件返回不同的结果。它的语法结构如下:
```
SELECT column1, column2, CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END AS alias
FROM table_name;
```
其中,column1和column2是要查询的列名,condition1和condition2是条件表达式,result1和result2是满足条件时返回的结果,ELSE后面的result是当所有条件都不满足时返回的结果,alias是返回结果的别名。
举个例子,假设有一个学生成绩表,包含学生姓名、科目和成绩三个字段,现在要查询每个学生的总成绩,并将总成绩按照一定的标准进行分类。可以使用以下SQL语句:
```
SELECT name, SUM(score) AS total_score, CASE
WHEN SUM(score) >= 90 THEN '优秀'
WHEN SUM(score) >= 80 THEN '良好'
WHEN SUM(score) >= 60 THEN '及格'
ELSE '不及格'
END AS score_level
FROM score_table
GROUP BY name;
```
这个语句会返回每个学生的总成绩和成绩等级,其中成绩等级根据总成绩的大小进行分类。
相关问题
SQL的CASE WHEN
SQL中的CASE WHEN是一个条件表达式,用于对数据集中的每个值进行条件判断并返回相应的结果。它的基本结构如下:
```sql
CASE
WHEN condition THEN result1
[WHEN condition2 THEN result2]
...
ELSE default_result
END
```
当你有一个列,想要基于某个或某些条件给它分配不同的值时,可以使用CASE WHEN。例如,你可以计算一列中学生的成绩等级:
```sql
SELECT
CASE
WHEN grade > 90 THEN 'A'
WHEN grade BETWEEN 80 AND 90 THEN 'B'
WHEN grade BETWEEN 70 AND 79 THEN 'C'
ELSE 'D'
END AS grade_category
FROM students;
```
在这个例子中,如果学生分数大于90,等级就是'A';如果在80到90之间,等级是'B',以此类推。如果没有匹配的条件,就返回默认的结果,这里是'D'。
SQL语法case when
SQL中的CASE WHEN语句是一种条件表达式,它用于根据特定条件返回不同的值。它的基本结构如下:
```sql
SELECT
CASE
WHEN condition_1 THEN result_if_true_1
[WHEN condition_2 THEN result_if_true_2]
[ELSE default_result]
END
FROM table;
```
在这个结构里,`condition_1`, `condition_2`等是判断条件,如果满足某个条件,就会执行对应的`result_if_true_1` 或 `result_if_true_2`。如果不满足所有条件,通常会有一个默认结果(`default_result`),会被应用到不符合条件的情况。
例如,如果你想要计算学生表中按照成绩等级分配分数,你可以这样做:
```sql
SELECT
id,
CASE
WHEN score > 90 THEN 'A'
WHEN score BETWEEN 80 AND 90 THEN 'B'
WHEN score BETWEEN 70 AND 80 THEN 'C'
ELSE 'D'
END AS grade
FROM students;
```
在这里,如果学生的分数大于90分,他们的等级就是'A',依此类推。
阅读全文