是否可以在SQL Server 2008中选择特定的ORDER BY?

deu*_*on0 13 sql-order-by sql-server-2008

我有一个表格,其中包含日期和时间,日期列,可以输入七天中的任何一天,并将它们设置为数据类型varchar.由于该表保存预订的时间为客户,我想从其中ID匹配的表中选择所有的日子,我想白天周一至周日进行排序.我希望我可以在此查询中添加一些内容来手动选择结果返回的顺序,如下所示:

select * 
from requirements 
where Family_ID = 1 
ORDER BY Day, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
Run Code Online (Sandbox Code Playgroud)

这当然不起作用,但我只想表明我想要实现的目标.客户不一定每天都需要帮助,我只想显示他们预订的日子.

通过DESC和ASC排序对一周中的几天没有帮助,我将不胜感激如何实现这一目标的任何提示.

谢谢.

Mic*_*uen 36

嗯..那很讨厌,日子是按照"星期一","星期二"等逐字存储的?

无论如何,只需这样做:

SELECT * 
FROM Requirements
ORDER BY 
     CASE Day 
     WHEN 'Monday' THEN 1
     WHEN 'Tuesday' THEN 2
     WHEN 'Wednesday' THEN 3
     WHEN 'Thursday' THEN 4
     WHEN 'Friday' THEN 5
     WHEN 'Saturday' THEN 6
     WHEN 'Sunday' THEN 7
     END
Run Code Online (Sandbox Code Playgroud)