solo seleccionar repetir repetido registros registro mostrar ejemplos duplicados distinctrow consulta sql ms-access jet

sql - seleccionar - Seleccione Top(todos menos 10) desde... en Microsoft Access



no repetir registros en consulta sql server (4)

Digamos que tengo una consulta

SELECT TOP 10 ... FROM ... ORDER BY ...

en Access (bueno, realmente Jet). La pregunta es: ¿cómo puedo obtener todas las otras filas ... todo menos el top 10?


¿No podrías hacer algo como

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

puede que no sea tan eficiente, pero esa es la única manera de pensar que puedo hacer algo así. AFAIK no hay una cláusula "BOTTOM" en SQL :)


SELECT ... FROM .... WHERE myID NOT IN (SELECT TOP 10 myID FROM ... ORDER BY rankfield) ORDER BY sortfield

Tenga en cuenta que su pedido ordenado podría, (si lo desea) ser diferente a su pedido clasificado.

Editar : Otra idea: si ya sabía cuántas filas TOTALES había, podría hacerlo (suponiendo 1000 filas):

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

Simplemente cambie el orden y tome la porción restante.

Por supuesto, si aún desea los resultados en el orden original, tendría que hacer algo tonto como:

SELECT ... FROM (SELECT TOP 990 ... FROM .... ORDER BY sortfield DESC) ORDER BY sortfield ASC



Esto es algo que a menudo se hace mejor en el lado del cliente, más bien en el DBMS, es decir, busca todas las filas de la tabla en un conjunto de registros ADO Classic, luego usa la propiedad Filter para eliminar las 10 filas según criterios, o Sort luego configura y luego omite las primeras / últimas 10 filas, o configure la longitud de la página según corresponda, omita la primera / última página, etc. No solo depende del número de filas sino también de la aplicación de destino, por ejemplo, sé que si esta es la fuente de datos para un informe de MS Access y el filtrado de las filas no deseadas pueden ser una gran molestia.