Выберите вершину (все кроме 10) от … в Microsoft Access

Есть много способов сделать это.

Пример: вы можете использовать Snowflake генерировать уникальный идентификатор, если вы получили идентификатор, вы можете сделать что угодно!

12
задан Joel Spolsky 5 February 2009 в 21:22
поделиться

4 ответа

Не могли Вы делать что-то как

SELECT ... FROM ...
WHERE PK NOT IN (SELECT TOP 10 PK FROM ...)
ORDER BY ...

это не могло бы быть настолько эффективно, но это - единственный путь первое, что пришло на ум, я могу думать, чтобы сделать что-то как этот. AFAIK там не является никаким "НИЖНИМ" пунктом в SQL :)

24
ответ дан 2 December 2019 в 04:09
поделиться

Можно создать поле разряда (Способы Создать Столбец Разряда) и фильтр прочь этого: где разряд> 10

3
ответ дан 2 December 2019 в 04:09
поделиться

Это это, что-то, что часто лучше делается на 'клиентской' стороне, скорее на DBMS т.е. выбирает строки всей таблицы в Классика ADO recordset затем, использует Свойство фильтра для удаления этих 10 строк на основе критериев или Вида затем набор затем, пропускает первые/последние 10 строк или устанавливает длину страницы, как соответствующий затем пропускают первую/последнюю страницу, и т.д. Мало того, что это зависит от количества строк, но также и целевого приложения, например, Я знаю, что, если это - источник данных для отчета о Доступе MS, затем фильтрующего от нежелательных строк, может быть много стычки.

3
ответ дан 2 December 2019 в 04:09
поделиться
SELECT ... FROM ....
WHERE myID NOT IN 
    (SELECT TOP 10 myID FROM ... ORDER BY rankfield)
ORDER BY sortfield

Обратите внимание, что Ваш отсортированный порядок мог, (если Вы желаете), отличаются, чем Ваш оцениваемый порядок.

Править: Другая идея: Если бы Вы уже знали, сколькими Строки итогов были там, Вы могли сделать (принятие 1 000 строк):

SELECT TOP 990 ... FROM .... ORDER BY sortfield DESC

Просто зеркально отразите вид и возьмите остающуюся часть.

Конечно, если бы Вы все еще хотели результаты в первоначальном заказе, то необходимо было бы сделать что-то глупое как:

SELECT ... 
FROM (SELECT TOP 990 ... FROM .... ORDER BY sortfield DESC)
ORDER BY sortfield ASC
6
ответ дан 2 December 2019 в 04:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: