📅  最后修改于: 2023-12-03 15:23:45.560000             🧑  作者: Mango
在SQL中,通过ORDER BY语句可以对查询结果进行排序。默认情况下,排序会按照指定列的平均值进行排序。但是,有时候我们可能需要按照其他方式进行排序,比如按照最小值、最大值或者其他特定的条件进行排序。
以下是一些示例来演示如何不按平均评分排序:
SELECT *
FROM tbl
ORDER BY MIN(score) ASC
该语句将会按照每个记录中'score'列的最小值来进行升序排序。我们可以将'ASC'从'score'最大值换成'DESC',以进行降序排序。
SELECT *
FROM tbl
ORDER BY MAX(score) ASC
同上一示例,该语句将会按照每个记录中'score'列的最大值来进行升序排序。
如果我们需要按照其他一些特定的条件进行排序,就要使用'CASE WHEN'语句来实现。
比如,我们可以按照记录中是否包含特定字符串来进行排序:
SELECT *
FROM tbl
ORDER BY CASE WHEN name LIKE '%abc%' THEN 0 ELSE 1 END, score DESC
该语句先将包含“abc”字符串的记录排在前面,然后对其余记录按'score'列的降序进行排序。
通过以上几个示例,我们可以看到如何在SQL中进行不同方式的排序,以满足不同的需求。