Вы бы хотели, чтобы вашим полем сортировки было целое число, соответствующее дню недели:
1 = Monday
2 = Tuesday
3 = Wednesday
...
Без дополнительных подробностей сложно привести пример кода. Если ваш день недели хранится как varchar, я предлагаю вам создать скалярную функцию базы данных, которая принимает день недели в качестве строкового аргумента и возвращает соответствующее целое число.
Вот пример в T-SQL:
create function dbo.GetDayNumber (
@dayOfWeek varchar(9)
) returns tinyint
as begin
declare @dayNum tinyint
set @dayNum = 0
select @dayNum =
case
when @dayOfWeek = 'Monday' then 1
when @dayOfWeek = 'Tuesday' then 2
when @dayOfWeek = 'Wednesday' then 3
when @dayOfWeek = 'Thursday' then 4
when @dayOfWeek = 'Friday' then 5
when @dayOfWeek = 'Saturday' then 6
when @dayOfWeek = 'Sunday' then 7
end
return @dayNum
end
Будьте осторожны - приведенный выше код возвращает 0 для недопустимых названий дней, что может привести к ошибкам в результатах, если ваши данные не идеальны.
select
MyEvent,
DayOfWeek
from MyEventTable
order by dbo.GetDayNumber(DayOfWeek)