case when用法_SQL的case when then else end语句的用法,刚入行小伙伴再也不用头疼啦...
时间: 2023-09-09 15:09:52 浏览: 71
SQL中的CASE WHEN THEN ELSE END语句是一种条件表达式,用于根据条件执行不同的操作。
基本语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE default_result
END
```
其中,`condition`是一个布尔表达式,`result`是一个表达式或值,`default_result`是在所有条件都不满足时返回的默认值。
例如,假设我们有一个名为`students`的表,其中包含学生的姓名和成绩。我们可以使用CASE WHEN语句来创建一个新列,根据成绩将学生分为优、良、及格或不及格:
```
SELECT name, score,
CASE
WHEN score >= 90 THEN '优'
WHEN score >= 80 THEN '良'
WHEN score >= 60 THEN '及格'
ELSE '不及格'
END AS grade
FROM students;
```
输出结果会包含三列,分别是学生的姓名、成绩和等级。
需要注意的是,CASE WHEN语句可以嵌套使用,在某些情况下可以更复杂的逻辑判断。
相关问题
mysql update 条件_mysql update语句中 条件控制case when...then...else...end
MySQL的UPDATE语句可以使用CASE语句来指定条件控制。CASE语句提供了一种在UPDATE语句中使用条件语句的方式。
下面是一个使用CASE语句的MySQL UPDATE语句的例子:
```
UPDATE mytable
SET column1 = CASE
WHEN column2 = 'value1' THEN 'newvalue1'
WHEN column2 = 'value2' THEN 'newvalue2'
ELSE column1
END
WHERE column3 = 'somevalue';
```
这个例子中,我们更新了一个名为 `mytable` 的表,将 `column1` 的值更改为根据 `column2` 的值计算出的新值。如果 `column2` 的值等于 `value1`,则将 `column1` 的值更改为 `newvalue1`,如果 `column2` 的值等于 `value2`,则将 `column1` 的值更改为 `newvalue2`。如果 `column2` 的值不等于 `value1` 或 `value2`,则保留 `column1` 的当前值。UPDATE语句只更新 `column3` 的值等于 `somevalue` 的行。
使用CASE语句可以提供更复杂的条件控制,以便根据需要更新表中的数据。
case when ... then ... else ... end
"Case" 是 SQL 的一种语句,用于执行条件判断。
它的语法为:CASE [expression] WHEN [condition1] THEN [result1] WHEN [condition2] THEN [result2] ELSE [result3] END。
其中 expression 是要判断的值,condition1、condition2 分别是条件1和条件2,result1、result2 分别是条件1和条件2成立时要返回的值,ELSE 后面的 result3 是在所有条件都不成立时要返回的值。
如:
CASE
WHEN [Age]>18 THEN "Adult"
WHEN [Age]<=18 THEN "Child"
ELSE "Invalid"
END
这个语句就是判断 Age 字段值是否大于 18,如果大于则返回 Adult,小于等于则返回 Child, 否则返回 Invalid.