mysql case when语法 最后的end 什么时候一定要写
时间: 2023-10-14 17:14:09 浏览: 38
在使用 MySQL 的 CASE WHEN 语句时,一定要在最后写上 END 关键字,否则会出现语法错误。CASE WHEN 语句的基本语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN conditionN THEN resultN
ELSE result
END
```
在这个语法中,CASE 语句会根据条件 condition1、condition2、conditionN 分别返回对应的结果 result1、result2、resultN。如果所有的条件都不成立,则返回 ELSE 子句中的结果 result。在这个语句中,END 关键字表示 CASE WHEN 语句的结束,如果没有写上 END,则会出现语法错误。
相关问题
mysql 的case when 语法
MySQL的case when语法有两种,分别是简单函数和搜索函数。
1. 简单函数的语法如下:
```mysql
CASE [col_name]
WHEN [value1] THEN [result1]
WHEN [value2] THEN [result2]
...
ELSE [default]
END
```
其中,`col_name`是要进行比较的列名,`value1`、`value2`等是要比较的值,`result1`、`result2`等是对应的结果,`default`是默认结果。
举个例子,假设有一个名为`students`的表,其中包含`name`和`score`两列,现在要根据`score`列的值输出对应的等级,可以使用以下语句:
```mysql
SELECT name,
CASE score
WHEN 90 THEN 'A'
WHEN 80 THEN 'B'
WHEN 70 THEN 'C'
ELSE 'D'
END AS grade
FROM students;
```
这个语句会根据`score`列的值输出对应的等级,如果`score`的值为90,则输出A,如果为80,则输出B,以此类推,如果都不匹配,则输出D。
2. 搜索函数的语法如下:
```mysql
CASE
WHEN [expr1] THEN [result1]
WHEN [expr2] THEN [result2]
...
ELSE [default]
END
```
其中,`expr1`、`expr2`等是要进行比较的表达式,`result1`、`result2`等是对应的结果,`default`是默认结果。
举个例子,假设有一个名为`employees`的表,其中包含`name`和`salary`两列,现在要根据`salary`列的值输出对应的等级,可以使用以下语句:
```mysql
SELECT name,
CASE
WHEN salary >= 10000 THEN 'A'
WHEN salary >= 8000 THEN 'B'
WHEN salary >= 6000 THEN 'C'
ELSE 'D'
END AS level
FROM employees;
```
这个语句会根据`salary`列的值输出对应的等级,如果`salary`的值大于等于10000,则输出A,如果在8000和10000之间,则输出B,以此类推,如果都不匹配,则输出D。
mysql的case when语法
MySQL中的CASE WHEN语法可以用于在SQL查询中进行条件判断并返回相应的结果。其基本语法如下:
```
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
```
其中,expression是需要进行判断的表达式,value1、value2等表示需要判断的值,result1、result2等表示对应的结果,default_result表示当没有匹配到任何值时的默认结果。
例如,下面的SQL查询使用CASE WHEN语法将成绩按照不同的区间进行分类:
```
SELECT
name,
score,
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 80 THEN '良好'
WHEN score >= 70 THEN '中等'
WHEN score >= 60 THEN '及格'
ELSE '不及格'
END AS grade
FROM
student;
```
这个查询将根据成绩的不同区间,返回不同的等级结果。需要注意的是,CASE WHEN语法中的value和result可以是任何类型的表达式,因此可以在查询中使用更加复杂的条件判断逻辑。