用sql case when 语法
时间: 2023-10-24 12:25:53 浏览: 77
SQL CASE WHEN语法用于在满足特定条件时执行不同的操作。以下是一个基本示例:
```
SELECT column1, column2,
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN condition3 THEN result3
ELSE result4
END
FROM table_name;
```
其中,column1和column2是要查询的列名,condition1、condition2和condition3是条件,result1、result2、result3和result4是在满足不同条件时要返回的结果。
例如,以下查询将根据学生的分数返回他们的等级:
```
SELECT name, score,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
WHEN score >= 60 THEN 'D'
ELSE 'F'
END AS grade
FROM students;
```
在上面的查询中,如果分数大于等于90,将返回'A'等级,如果分数大于等于80,则返回'B'等级,以此类推。如果分数低于60,则返回'F'等级。同时,将使用AS关键字为结果集中的列指定别名。
相关问题
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',依此类推。
sqlserver case when then使用语法
在SQL Server中,CASE WHEN THEN是一种条件表达式,用于根据不同的条件返回不同的值。以下是CASE WHEN THEN语法的示例:
```sql
SELECT column_name,
CASE
WHEN condition1 THEN value1
WHEN condition2 THEN value2
...
ELSE default_value
END AS new_column_name
FROM table_name;
```
在上面的语法中,column_name是要进行条件判断的列名,condition1、condition2等是要进行判断的条件,value1、value2等是满足对应条件时返回的值,default_value是当所有条件都不满足时返回的默认值。
下面是一个具体的示例,假设有一个名为Students的表,包含学生的姓名和年龄字段:
```sql
SELECT name,
CASE
WHEN age < 18 THEN '未成年'
WHEN age >= 18 AND age < 25 THEN '青年'
WHEN age >= 25 AND age < 40 THEN '中年'
ELSE '老年'
END AS age_group
FROM Students;
```
以上查询将根据学生的年龄将其分组为不同的年龄段,并将结果显示为"age_group"列。根据不同的年龄范围,返回相应的文字描述。
希望这个示例能够帮助你理解SQL Server中CASE WHEN THEN语法的用法。
阅读全文