sql case when和ORDER BY执行顺序
时间: 2023-06-28 14:04:57 浏览: 85
SQL的执行顺序一般是这样的:FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY。
在使用CASE WHEN语句时,它会被视为SELECT语句的一部分,因此它会在ORDER BY之前执行。这意味着你可以在CASE WHEN语句中使用ORDER BY子句,但是ORDER BY子句不会影响CASE WHEN语句。
举个例子:
```
SELECT
CASE
WHEN column1 = 'value1' THEN 'A'
WHEN column1 = 'value2' THEN 'B'
ELSE 'C'
END AS column_alias
FROM table
ORDER BY column1 DESC;
```
在这个例子中,CASE WHEN语句会在ORDER BY之前执行,因此它会根据条件给column1赋值,然后再按照column1的值进行排序。
需要注意的是,如果你在CASE WHEN语句中使用了聚合函数,如SUM、AVG等,那么它会在GROUP BY之后执行。
相关问题
case when怎么和order by
在 SQL 中,你可以使用 CASE WHEN 语句与 ORDER BY 一起来进行条件排序。CASE WHEN 语句用于根据特定条件返回不同的值,而 ORDER BY 用于对结果集进行排序。
以下是一个示例,展示如何在 CASE WHEN 语句中使用 ORDER BY:
```sql
SELECT column1, column2
FROM table
ORDER BY
CASE
WHEN condition1 THEN expression1
WHEN condition2 THEN expression2
ELSE expression3
END;
```
在上面的示例中,你可以根据条件 condition1、condition2 等选择不同的表达式 expression1、expression2 等。根据这些表达式对结果集进行排序。
请注意,CASE WHEN 语句是根据条件逐个进行匹配的,并且只会返回第一个满足条件的表达式。因此,你可以根据需要添加多个条件和表达式。
希望这能帮到你!如果有任何其他问题,请随时提问。
order by和case when连用
"order by" 是一个 SQL 查询语句中的关键词,用于按照指定的列或表达式对结果集进行排序。而 "case when" 是一种条件语句,用于根据满足某些条件时执行不同的操作或返回不同的结果。在 SQL 查询语句中,有时可以将 "case when" 语句与 "order by" 关键词结合使用。例如,可以使用 "case when" 语句指定排序顺序的条件,然后使用 "order by" 关键词按照指定顺序对结果进行排序。