Predicados ALL, DISTINCT, DISTINCTROW, TOP

Importante :  Este artigo foi traduzido por um sistema de tradução automática, leia o aviso de isenção de responsabilidade. Para sua referência, veja a versão em inglês deste artigo aqui.

Especifica os registros selecionados com consultas SQL.

Sintaxe

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

Uma instrução SELECT contendo esses predicados possui as seguintes partes:

Parte

Descrição

ALL

Pressupõe que se você não inclua um dos predicados. O mecanismo de banco de dados do Microsoft Access seleciona todos os registros que atendam às condições na instrução SQL. Dois exemplos a seguir são equivalentes e retornam todos os registros da tabela Funcionários:

SELECT ALL *
FROM Employees
ORDER BY EmployeeID;
SELECT *
FROM Employees
ORDER BY EmployeeID;

DISTINCT

Omite registros que contêm dados duplicados nos campos selecionados. Para serem incluídos nos resultados da consulta, os valores para cada campo listado na instrução SELECT devem ser exclusivos. Por exemplo, vários funcionários listados em uma tabela Funcionários podem ter o mesmo sobrenome. Se dois registros contiverem Souza no campo Sobrenome, a seguinte instrução SQL retornará apenas um registro que contém Souza:

SELECT DISTINCT LastName
FROM Employees;

Se você omitir DISTINCT, essa consulta retornará os dois registros Souza.

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

A saída de uma consulta que usa DISTINCT não pode ser atualizada e não reflete as alterações subsequentes feitas por outros usuários.

DISTINCTROW

Omite dados com base em registros inteiros duplicados e não apenas em campos duplicados. Por exemplo, você poderia criar uma consulta que associa as tabelas Clientes e Pedidos no campo IDCliente. A tabela Clientes não contém campos IDCliente duplicados, mas a tabela Pedidos contém, pois cada cliente pode ter muitos pedidos. A seguinte instrução SQL mostra como você pode usar DISTINCTROW para produzir uma lista de empresas que têm pelo menos um pedido, mas sem fornecer quaisquer detalhes sobre esses pedidos:

SELECT DISTINCTROW CompanyName
FROM Customers INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER BY CompanyName;

Se você omitir DISTINCTROW, essa consulta produzirá várias linhas para cada empresa que tem mais de um pedido.

DISTINCTROW tem efeito apenas quando você seleciona campos de algumas, mas não todas, as tabelas usadas na consulta. DISTINCTROW será ignorado se a consulta incluir apenas uma tabela, ou se você obter saídas de campos de todas as tabelas.

TOP n [PERCENT]

Retorna uma determinada quantidade de registros que se enquadram na parte superior ou inferior de um intervalo especificado por uma cláusula ORDER BY. Vamos supor que você queira os nomes dos 25 principais estudantes da turma de 1994:

SELECT TOP 25
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage DESC;

Se você não incluir a cláusula ORDER BY, a consulta retornará um conjunto aleatório de 25 registros da tabela Alunos que atendam à cláusula WHERE.

O predicado TOP não faz escolhas entre valores iguais. No exemplo anterior, se as médias mais altas dos registros vinte cinco e vinte seis forem iguais, a consulta retornará 26 registros.

Você também pode usar a palavra reservada PERCENT para retornar uma determinada porcentagem de registros que se enquadram na parte superior ou inferior de um intervalo especificado por uma cláusula ORDER BY. Vamos supor que, em vez dos 25 estudantes principais, você queira os 10 por cento piores da classe:

SELECT TOP 10 PERCENT
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage ASC;

O predicado ASC especifica um retorno dos valores inferiores. O valor que segue TOP deve ser um inteiro.

TOP não afeta a possibilidade de atualização de uma consulta.

tabela

O nome da tabela da qual os registros são recuperados.



Observação : Aviso de Isenção de Tradução Automática: Este artigo foi traduzido por computador, sem intervenção humana. A Microsoft oferece essas traduções automáticas para ajudar as pessoas que não falam inglês a aproveitar os textos escritos sobre produtos, serviços e tecnologias da Microsoft. Como este artigo foi traduzido automaticamente, é possível que contenha erros de vocabulário, sintaxe ou gramática.

Essas informações foram úteis?

Ótimo! Outros comentários?

Como podemos melhorá-lo?

Obrigado por seus comentários!

×