SQL设置ORDER BY

时间:2013-10-11 17:39:44

标签: mysql sql

是否可以将sql语句中的ORDER BY设置为您想要的值?例如,如果我想按此顺序选择Day的值:Thu, Sat, Sun, Mon

SELECT * 
FROM `NFL_Games` 
WHERE Week = '1' 
ORDER BY Day

5 个答案:

答案 0 :(得分:7)

您可以使用case when条款进行个人订购......

order by
(case Day
 when 'Thu' then 1
 when 'Sat' then 2
 when 'Sun' then 3
 when 'Mon' then 4
 else 5 end), 
 Day

答案 1 :(得分:0)

是的,您可以使用ORDER BY

中的表达式
SELECT * FROM `NFL_Games` WHERE Week = '1' ORDER BY DAYOFWEEK( date_field )

答案 2 :(得分:0)

由于Order by是执行查询时处理的最后一个子句,如果您的select语句具有day列(根据表'NFL_Games'中的日期计算,或者表中有'Day'列,则为yes)可以指定最终集合中行之间的排序。

答案 3 :(得分:0)

像这样的东西会起作用..可能因为案例陈述而有点烦人但是会做这个工作。

SELECT *, 
       CASE fstrDay 
         WHEN 'Thursday' THEN 0 
         WHEN 'Friday' THEN 1 
         WHEN 'Saturday' THEN 2 
         WHEN 'Sunday' THEN 3 
         WHEN 'Monday' THEN 4 
         WHEN 'Tuesday' THEN 5 
         WHEN 'Wednesday' THEN 6 
       END AS flngOrder 
FROM   NFL_Games
WHERE  Week = '1'
ORDER  BY flngOrder ASC 

答案 4 :(得分:-2)

这似乎完全合法;您也可以按升序或降序排序。