说我有一个查询
SELECT TOP 10 ... FROM ... ORDER BY ...
在Access(好吧,真的是Jet).问题是:如何获得所有其他行... 除了前10名之外的所有内容?
你不能做类似的事吗
SELECT ... FROM ... WHERE PK NOT IN (SELECT TOP 10 PK FROM ...) ORDER BY ...
它可能效率不高,但这是我能想到做的事情的唯一方法.AFAIK在SQL中没有"BOTTOM"子句:)
SELECT ... FROM .... WHERE myID NOT IN (SELECT TOP 10 myID FROM ... ORDER BY rankfield) ORDER BY sortfield
请注意,您的排序顺序可以(如果您愿意)与排名顺序不同.
编辑:另一个想法:如果你已经知道有多少TOTAL行,你可以做(假设1000行):
SELECT TOP 990 ... FROM .... ORDER BY sortfield DESC
只需翻转排序,然后取出剩下的部分.
当然,如果你仍然想要原始顺序的结果,你必须做一些愚蠢的事情:
SELECT ... FROM (SELECT TOP 990 ... FROM .... ORDER BY sortfield DESC) ORDER BY sortfield ASC