sql中case when的执行顺序
时间: 2023-11-19 21:57:24 浏览: 375
在SQL中,CASE WHEN语句的执行顺序如下:
1. 先执行WHEN后面的条件判断,如果满足条件则执行THEN后面的语句。
2. 如果没有任何一个WHEN条件满足,则执行ELSE后面的语句。
3. 如果没有ELSE语句,则返回NULL。
以下是一个示例:
```sql
SELECT
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
ELSE 'D'
END AS grade
FROM
student;
```
上述示例中,首先判断score是否大于等于90,如果是则返回A,否则继续判断是否大于等于80,以此类推。如果都不满足,则返回D。
相关问题
SQL中CASE WHEN和GROUP BY执行顺序
在SQL中,执行顺序是先执行FROM子句中的表,然后执行WHERE子句的筛选,接着执行GROUP BY分组,然后执行SELECT子句中的表达式和函数,最后执行ORDER BY排序。
在此基础上,CASE WHEN语句的执行顺序是在SELECT子句之后,但在ORDER BY之前。也就是说,CASE WHEN语句可以用于SELECT子句中的表达式和函数,但它们不会影响GROUP BY分组。
因此,如果您想在GROUP BY分组之前使用CASE WHEN语句进行筛选或计算,可以使用子查询或通用表表达式(CTE)来实现。
case when 执行顺序
在 SQL 中,CASE WHEN 表达式是一个条件表达式,用于根据特定条件返回不同的结果值。它的执行顺序如下:
1. 先执行 WHEN 子句中的条件判断,如果条件为 true,则执行对应的 THEN 子句,并返回结果值,然后退出 CASE WHEN 表达式的执行。
2. 如果所有的 WHEN 子句都不满足条件,那么会执行 ELSE 子句中的逻辑,并返回结果值,然后退出 CASE WHEN 表达式的执行。
3. 如果没有 ELSE 子句,则返回 NULL 值。
需要注意的是,CASE WHEN 表达式的执行顺序是从上往下依次执行的,因此在编写 CASE WHEN 表达式时,需要根据业务需要将条件判断顺序写在合适的位置,以便正确地返回期望的结果值。
阅读全文