Я новичок в SQL, и у меня возникла проблема с предложением top и order by.
Мои данные
id name
------------
1 a
2 b
4 ccc
6 aaaaaa
, и у меня есть запрос
select top 1
*
from
(select top 2
*
from
testing2) t
order by
id desc
Результат
id name
-----------
6 aaaaaa
Я не знаю, почему он печатает последнюю запись.
Вот мои мысли по поводу запроса:
Сначала я хочуизвлечь вторую запись из таблицы. Так как он уже отсортирован по id, мне не нужен порядок по внутреннему запросу. Таким образом, внутренний запрос вернет
1 a
2 b
Затем я использую top 1
и order by desc
для получения второй записи.
Очевидно, я ошибаюсь. Я знаю решение, добавив порядок во внутреннем запросе.
Но я хочу знать, почему, и шаг выполнения этого запроса в базе данных.