Predicados ALL, DISTINCT, DISTINCTROW o TOP

Se aplica a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Use estos predicados para especificar los registros que selecciona una consulta SQL.

Sintaxis

SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
FROM table

Una SELECT instrucción que contiene estos predicados tiene las siguientes partes:

Parte Descripción
ALL Si no incluye otro predicado, Access se da por supuesto ALL . El motor de base de datos de Access selecciona todos los registros que cumplen las condiciones de la instrucción SQL. Estos ejemplos son equivalentes y devuelven todos los registros de la Employees tabla: SELECT ALL * FROM Employees ORDER BY EmployeeID; y SELECT * FROM Employees ORDER BY EmployeeID;
DISTINCT Omite los registros que contienen datos duplicados en los campos seleccionados. Para incluir un registro en los resultados, los valores de cada campo de la SELECT instrucción deben ser únicos. Por ejemplo, varios empleados de una Employees tabla pueden tener el mismo apellido. Si dos registros contienen Smith en el LastName campo, SELECT DISTINCT LastName FROM Employees; devuelve solo un registro que contiene Smith. Si omite DISTINCT, la consulta devuelve ambos Smith registros. Si la SELECT cláusula contiene más de un campo, la combinación de valores de todos los campos debe ser única para que un registro aparezca en los resultados. La salida de una consulta que usa DISTINCT no se puede actualizar y no refleja los cambios posteriores realizados por otros usuarios.
DISTINCTROW Omite datos basados en registros duplicados completos, no solo campos duplicados. Por ejemplo, puede crear una consulta que combine las Customers tablas and Orders en el CustomerID campo. La Customers tabla no tiene campos duplicados CustomerID , pero la Orders tabla sí lo tiene porque cada cliente puede tener muchos pedidos. SELECT DISTINCTROW CompanyName FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID ORDER BY CompanyName; Produce una lista de empresas que tienen al menos un pedido, pero no incluye detalles sobre esos pedidos. Si omite DISTINCTROW, la consulta producirá varias filas para cada compañía que tenga más de un pedido. DISTINCTROW solo tiene efecto cuando se seleccionan campos de algunas de las tablas usadas en la consulta, pero no de todas. Access ignorará DISTINCTROW si la consulta incluye solo una tabla o si genera campos de todas las tablas.
TOP n [PERCENT] Devuelve un número específico de registros que se encuentran en la parte superior o inferior de un rango especificado por una ORDER BY cláusula. Supongamos que quiere los nombres de los 25 mejores alumnos de la clase de 2003: SELECT TOP 25 FirstName, LastName FROM Students WHERE GraduationYear = 2003 ORDER BY GradePointAverage DESC; Si no incluye la ORDER BY cláusula, la consulta devuelve un conjunto arbitrario de 25 registros de la Students tabla que cumplen la WHERE cláusula. El TOP predicado no elige entre valores iguales. En el ejemplo anterior, si los promedios de calificaciones más altos vigésimo quinto y vigésimo sexto son iguales, la consulta devuelve 26 registros. También puede usar la PERCENT palabra reservada para devolver un porcentaje de registros que se encuentran en la parte superior o inferior de un rango especificado por una ORDER BY cláusula. Por ejemplo, si quiere el 10 por ciento inferior de la clase, use SELECT TOP 10 PERCENT FirstName, LastName FROM Students WHERE GraduationYear = 2003 ORDER BY GradePointAverage ASC; El ASC predicado devuelve los valores inferiores. El valor siguiente TOP debe ser un entero sin signo. TOP No afecta a si la consulta se puede actualizar.
table Nombre de la tabla de la que Access recupera los registros.