mysql casewhen 三列数据如何在新的三列实现对其排名
时间: 2023-08-11 08:33:54 浏览: 76
SQL查询语句行转列横向显示实例解析
如果你想在新的三列中实现基于多列 `CASE WHEN` 的排名,可以将这些 `CASE WHEN` 表达式作为子查询,并在外部查询中使用 `ORDER BY` 子句对新的三列进行排序。以下是一个示例:
```
SELECT column1, column2,
CASE WHEN condition1 THEN result1 ELSE result2 END AS my_result1,
CASE WHEN condition2 THEN result3 ELSE result4 END AS my_result2,
CASE WHEN condition3 THEN result5 ELSE result6 END AS my_result3
FROM (
SELECT column1, column2,
CASE WHEN condition1 THEN result1 ELSE result2 END AS my_result1,
CASE WHEN condition2 THEN result3 ELSE result4 END AS my_result2,
CASE WHEN condition3 THEN result5 ELSE result6 END AS my_result3
FROM my_table
) subquery
ORDER BY my_result1 DESC, my_result2 ASC, my_result3 DESC;
```
在这个例子中,我们首先在子查询中使用了三个 `CASE WHEN` 表达式,并将它们分别命名为 `my_result1`、`my_result2` 和 `my_result3`。然后,在外部查询中,我们使用 `ORDER BY` 子句对这些列进行排序,以实现所需的排名效果。
你可以根据需要调整 `ORDER BY` 子句以实现所需的排序顺序。
阅读全文