Predicados ALL, DISTINCT, DISTINCTROW, TOP

Predicados ALL, DISTINCT, DISTINCTROW, TOP

Nota: Queremos fornecer-lhe os conteúdos de ajuda mais recentes o mais rapidamente possível e no seu idioma. Esta página foi traduzida automaticamente e pode conter erros gramaticais ou imprecisões. O nosso objetivo é que estes conteúdos lhe sejam úteis. Pode informar-nos se as informações foram úteis no final desta página? Eis o artigo em inglês para referência.

Especifica registos seleccionados com consultas SQL.

Sintaxe

SELECIONE [TODOS OS | DISTINTOS | DISTINCTROW | [Início n [percentagem]]]
Da tabela

Uma instrução SELECT contendo estes predicados tem as seguintes partes:

Parte

Descrição

ALL

Parte do princípio de que se não inclui um dos predicados. 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 a partir da tabela de funcionários:

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

DISTINCT

Omite os registos que contenham dados duplicados nos campos selecionados. Para ser incluídos nos resultados da consulta, os valores para cada campo listado na instrução SELECT tem de ser exclusivos. Por exemplo, vários empregados listados numa tabela empregados poderão ter o mesmo apelido. Se os dois registos contiverem Silva no campo Apelido, a seguinte instrução SQL devolve apenas um registo que contenha Silva:

SELECT DISTINCT LastName
FROM Employees;

Se omitir DISTINCT, esta consulta devolve os dois registos com Silva.

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

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

DISTINCTROW

Omite dados com base em registos duplicados inteiros e não apenas os campos duplicados. Por exemplo, podia criar uma consulta que associe as tabelas clientes e encomendas no campo IDCliente. A tabela compradores não contém duplicados IDCliente campos, mas é que a tabela Encomendas de uma vez que cada cliente pode ter várias encomendas. A seguinte instrução SQL mostra como pode utilizar DISTINCTROW para produzir uma lista de empresas que tenham, pelo menos, numa encomenda, mas sem qualquer detalhes sobre essas encomendas:

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

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

DISTINCTROW tem efeito apenas quando selecionar campos a partir de alguns, mas não todos, das tabelas utilizadas na consulta. DISTINCTROW é ignorada se a sua consulta incluir apenas uma tabela ou se os campos de todas as tabelas.

INÍCIO n [percentagem]

Devolve um determinado número de registos que se inserem na parte superior ou inferior de um intervalo especificado por uma cláusula ORDER BY. Suponha que pretende que os nomes dos 25 estudantes superiores a partir de classe de 1994:

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

Se não incluir a cláusula ORDER BY, a consulta irá devolver um conjunto de 25 registos arbitrário a partir da tabela de estudantes que satisfaçam a cláusula WHERE.

O predicado TOP não escolha entre valores iguais. No exemplo anterior, se o quinto de vinte e sexto vinte e mais altos ponto médias são iguais, a consulta irá devolver 26 registos.

Também pode utilizar a palavra reservada percentagem para devolver uma determinada percentagem de registos que se inserem na parte superior ou inferior de um intervalo especificado por uma cláusula ORDER BY. Imaginemos que, em vez de 25 melhores alunos, pretende que a parte inferior 10 por cento a classe de:

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

O predicado ASC especifica uma devolução dos valores inferiores. O valor que se segue início tem de ser um inteiro.

INÍCIO não afeta se ou não a consulta é atualizável.

tabela

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



Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×