Predicados ALL, DISTINCT, DISTINCTROW, TOP
Applies ToAccess para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Especifica registos selecionados com consultas SQL.

Sintaxe

SELECIONAR [TUDO | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]Tabela FROM

Uma instrução SELECT que contém estes predicados tem as seguintes partes:

Parte

Descrição

ALL

Assumido se não incluir um dos predicados. O motor de base de dados do Microsoft Access seleciona todos os registos que cumprem as condições na instrução SQL. Os dois exemplos seguintes são equivalentes e devolvem todos os registos da tabela Funcionários:

SELECT ALL *FROM EmployeesORDER BY EmployeeID;
SELECT *FROM EmployeesORDER BY EmployeeID;

DISTINCT

Omite registos que contêm dados duplicados nos campos selecionados. Para serem incluídos nos resultados da consulta, os valores de cada campo listado na instrução SELECT têm de ser exclusivos. Por exemplo, vários funcionários listados numa tabela Funcionários podem ter o mesmo apelido. Se dois registos contiverem o Smith no campo LastName, a seguinte instrução SQL devolve apenas um registo que contém Smith:

SELECT DISTINCT LastNameFROM Employees;

Se omitir DISTINCT, esta consulta devolve ambos os registos smith.

Se a cláusula SELECT contiver mais do que um campo, a combinação de valores de todos os campos tem de ser exclusiva para que um determinado registo seja incluído nos resultados.

O resultado de uma consulta que utiliza DISTINCT não é atualizável e não reflete as alterações subsequentes efetuadas por outros utilizadores.

DISTINCTROW

Omite dados com base em registos duplicados inteiros e não apenas em campos duplicados. Por exemplo, pode criar uma consulta que associe as tabelas Clientes e Encomendas no campo IDDoCliente. A tabela Clientes não contém campos CustomerID duplicados, mas a tabela Encomendas tem porque cada cliente pode ter muitas encomendas. A seguinte instrução SQL mostra como pode utilizar a DISTINCTROW para produzir uma lista de empresas que têm, pelo menos, uma encomenda, mas sem detalhes sobre essas encomendas:

SELECT DISTINCTROW CompanyNameFROM Customers INNER JOIN OrdersON Customers.CustomerID = Orders.CustomerIDORDER BY CompanyName;

Se omitir DISTINCTROW, esta consulta produz várias linhas para cada empresa que tenha mais do que uma encomenda.

DISTINCTROW tem um efeito apenas quando seleciona campos de algumas, mas não todas, das tabelas utilizadas na consulta. DISTINCTROW é ignorado se a consulta incluir apenas uma tabela ou se exportar campos de todas as tabelas.

TOP n [PERCENT]

Devolve um determinado número de registos que se enquadram na parte superior ou inferior de um intervalo especificado por uma cláusula ORDER BY. Suponha que pretende os nomes dos 25 melhores estudantes da turma de 1994:

SELECT TOP 25FirstName, LastNameFROM StudentsWHERE GraduationYear = 2003ORDER BY GradePointAverage DESC;

Se não incluir a cláusula ORDER BY, a consulta devolverá um conjunto arbitrário de 25 registos da tabela Estudantes que satisfazem a cláusula WHERE.

O predicado TOP não escolhe entre valores iguais. No exemplo anterior, se as médias de 25 e 26 pontos mais altos forem as mesmas, a consulta devolverá 26 registos.

Também pode utilizar a palavra reservada PERCENT para devolver uma determinada percentagem de registos que se enquadram na parte superior ou inferior de um intervalo especificado por uma cláusula ORDER BY. Suponha que, em vez dos 25 melhores alunos, quer os 10% inferiores da turma:

SELECT TOP 10 PERCENTFirstName, LastNameFROM StudentsWHERE GraduationYear = 2003ORDER BY GradePointAverage ASC;

O predicado do ASC especifica uma devolução dos valores inferiores. O valor que se segue a TOP tem de ser um Número Inteiro não assinado.

O TOP não afeta se a consulta é ou não atualizável.

tabela

O nome da tabela a partir da qual são obtidos os registos.

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.