У меня есть таблица со столбцом даты события. Я хочу возвращать записи в том порядке, в котором сначала отображаются самые последние предстоящие записи, а когда все предстоящие записи закончены, прошлые записи должны отображаться с последними пройденными первыми.
Для этого я планировал сначала получить записи с event date > GETDATE()
, отсортированные по возрастанию, и объединить их с остальными записями в порядке убывания даты события.
Поскольку указание 2 ORDER BY
невозможно в UNION
, какой подход можно использовать в этом случае.
Подводя итог, мой запрос требует таких результатов, как:
SELECT EventName, EventDate
FROM EventTable
WHERE EventDate>GETDATE()
ORDER BY EventDate
UNION ALL
SELECT EventName, EventDate
FROM EventTable
WHERE EventDate<=GETDATE()
ORDER BY EventDate DESC