Вы также можете сделать это с временной таблицей:
SELECT TOP 3 Name FROM PuppyNames ORDER BY NumberOfVotes DESC
становится
CREATE TABLE #RowNumberTable (
RowNumber int IDENTITY (1,1),
PuppyName varchar(MAX)
)
INSERT #RowNumberTable (PuppyName)
SELECT TOP 3 Name FROM PuppyNames ORDER BY NumberOfVotes DESC
SELECT * from #RowNumberTable ORDER BY RowNumber
DROP TABLE #RowNumberTable
Если вы заметите, ваше утверждение SELECT там. Он просто окружен вещами, которые заставляют работать номера строк.