1

我有一个看起来像的 SQL 查询

SELECT Fruit, COUNT(*) FROM Table1 GROUP BY Fruit

它返回

葡萄 8
苹果 2
桃子 9
橙子 6
香蕉 5

我不希望按字母顺序排序。

我要按这个顺序

香蕉
苹果


葡萄

我似乎无法让他们在一个案例雄蕊上的语法正确......帮助!

4

2 回答 2

6

您可以使用 FIELD() 函数:

SELECT Fruit, COUNT(*)
FROM Table1
GROUP BY Fruit
ORDER BY FIELD(Fruit, 'Banana','Apple','Orange','Peach','Grape')
于 2013-05-09T19:11:51.067 回答
3

您可以使用CASEinORDER BY子句将数据按您想要的顺序排列:

SELECT Fruit, COUNT(*) Total
FROM Table1 
GROUP BY Fruit
order by 
  case fruit 
    when 'banana' then 1
    when 'apple' then 2
    when 'orange' then 3
    when 'peach' then 4
    when 'grape' then 5 
    else 6 end;

请参阅带有演示的 SQL Fiddle

于 2013-05-09T18:56:55.193 回答