Я знаю, почему это происходит, но я хочу найти способ обойти это, если это возможно.
Например, у меня есть 4 строки в моей базе данных, и у каждой есть дата / время (все они разные). То, что я хочу сделать, это получить последние 2 строки, но использовать возрастающий порядок, так что самый старый находится вверху набора результатов.
Я сейчас использую
SELECT TOP 2 *
FROM mytable
WHERE someid = @something
ORDER BY added DESC
Это дает мне правильные строки, но в неправильном порядке. Если я изменю DESC на ASC, он получит правильный порядок, но более старые два из четырех рядов. Все это имеет смысл для меня, но есть ли способ обойти это?
РЕДАКТИРОВАТЬ: Решено с ответом Эллиота ниже. Однако синтаксис не будет работать без установки псевдонима для производной таблицы. Вот результат
SELECT * FROM
(SELECT TOP 2 * FROM mytable WHERE someid = @something ORDER BY added DESC) AS tbl
ORDER BY tbl.added ASC