我也遇到这个问题了,其实是access的限制.帮助里说的
返回出现在由 ORDER BY 子句指定的起始和结束范围内的一定数量的记录。假定希望得到 1994 年级中前 25 名学生的名字:
SELECT TOP 25
FirstName, LastName
FROM Students
WHERE GraduationYear = 1994
ORDER BY GradePointAverage DESC;
如果没有包含 ORDER BY 子句,查询将会从 Students 表中返回一个满足 WHERE 子句的包含 25 个记录的任意集合。
TOP 谓词不会在两个相等的值中进行选择。在上面的示例中,如果第 25 和第 26 名的年级平均分相同,那么查询将会返回 26 个记录。
也可以使用 PERCENT 保留字返回出现在 ORDER BY 子句指定的起始和结束范围内的某个百分比数量的记录。假如,您希望返回该年级中最后名次的百分之十个学生,而不是前 25 名学生:
SELECT TOP 10 PERCENT
FirstName, LastName
FROM Students
WHERE GraduationYear = 1994
ORDER BY GradePointAverage ASC;
select top 1 * from article order by r_date desc
你这种写法先执行order by 然后在top这样就反了
你模仿下面这个就可以了
select * from [table] where id in (SELECT TOP 2 id
FROM [table])
ORDER BY id DESC