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