如何在SQL中按特定条件排序

时间:2018-07-31 09:34:43

标签: sql sql-order-by

Name    | count  
jaison    23  
Drew      45  
Abd       22  
Ricky     55  
OTHERS    10 

我希望按从高到低的顺序进行排序,并将OTHERS放在SQL表格的底部。预先感谢。

2 个答案:

答案 0 :(得分:2)

使用CASE表达式足够简单:

SELECT Name,Count
FROM SomeTable
ORDER BY CASE WHEN Name='OTHERS' THEN -1000 ELSE Count END desc

(假设Count不能为负,这不应该是该单词的任何简单含义)


(我通常会将上面的CASE链接到特定的文档。但是,在不知道您正在使用哪种SQL产品的情况下,如果您需要有关它的更多信息,我将留给您查找有关的文档)

答案 1 :(得分:0)

您应该使用两个键代替神奇的值:

select t.*
from t
order by (case when name = 'Others' then 1 else 0 end),  -- put Others last,
         count desc;

具有讽刺意味的是,在您的情况下,'Others'已经具有最小值,所以:

order by count desc

做你想要的。