在Microsoft Access中从...中选择Top(除了10之外)

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"子句:)


Bra*_*adC 6

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)