Use esses predicados para especificar quais registros uma consulta SQL seleciona.
Sintaxe
SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
FROM table
Uma SELECT instrução que contém esses predicados tem as seguintes partes:
| Parte | Descrição |
|---|---|
ALL |
O acesso pressupõe ALL se você não incluir outro predicado. O mecanismo de banco de dados access seleciona todos os registros que atendem às condições na instrução SQL. Esses exemplos são equivalentes e retornam todos os registros da Employees tabela: SELECT ALL * FROM Employees ORDER BY EmployeeID; e SELECT * FROM Employees ORDER BY EmployeeID; |
DISTINCT |
Omite registros que contêm dados duplicados nos campos selecionados. Para incluir um registro nos resultados, os valores de cada campo na SELECT instrução devem ser exclusivos. Por exemplo, vários funcionários em uma Employees tabela podem ter o mesmo sobrenome. Se dois registros contiverem Smith no campo, SELECT DISTINCT LastName FROM Employees; retornará apenas um registro que contém SmithLastName . Se você omitir DISTINCT, a consulta retornará ambos os Smith registros. Se a SELECT cláusula contiver mais de um campo, a combinação de valores de todos os campos deverá ser exclusiva para que um registro apareça nos resultados. A saída de uma consulta que usa DISTINCT não é atualizável e não reflete alterações posteriores feitas por outros usuários. |
DISTINCTROW |
Omite dados com base em registros duplicados inteiros, não apenas em campos duplicados. Por exemplo, você pode criar uma consulta que une as Customers tabelas e Orders no CustomerID campo. A Customers tabela não tem campos duplicados CustomerID , mas a Orders tabela tem porque cada cliente pode ter muitos pedidos.
SELECT DISTINCTROW CompanyName FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID ORDER BY CompanyName; produz uma lista de empresas que têm pelo menos um pedido, mas não inclui detalhes sobre esses pedidos. Se você omitir DISTINCTROW, a consulta produzirá várias linhas para cada empresa que tem mais de uma ordem.
DISTINCTROW tem um efeito somente quando você seleciona campos de alguns, mas não todos, das tabelas usadas na consulta. O acesso ignorará DISTINCTROW se a consulta incluir apenas uma tabela ou se você produzir campos de todas as tabelas. |
TOP n [PERCENT] |
Retorna um número específico de registros que caem na parte superior ou inferior de um intervalo especificado por uma ORDER BY cláusula. Suponha que você queira os nomes dos 25 melhores alunos da classe de 2003: SELECT TOP 25 FirstName, LastName FROM Students WHERE GraduationYear = 2003 ORDER BY GradePointAverage DESC; se você não incluir a ORDER BY cláusula, a consulta retornará um conjunto arbitrário de 25 registros da Students tabela que satisfaça a WHERE cláusula. O TOP predicado não escolhe entre valores iguais. No exemplo anterior, se as médias de 25 e 26 pontos de grau mais altas forem as mesmas, a consulta retornará 26 registros. Você também pode usar a PERCENT palavra reservada para retornar uma porcentagem de registros que caem na parte superior ou inferior de um intervalo especificado por uma ORDER BY cláusula. Por exemplo, se você quiser os 10% inferiores da classe, use SELECT TOP 10 PERCENT FirstName, LastName FROM Students WHERE GraduationYear = 2003 ORDER BY GradePointAverage ASC; O ASC predicado retorna valores inferiores. O valor a seguir TOP deve ser um inteiro não assinado.
TOP não afeta se a consulta é atualizável. |
table |
O nome da tabela da qual o Access recupera registros. |