Especifica registos selecionados com consultas SQL.
Sintaxe
SELECIONAR [TUDO | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
Tabela FROMUma 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:
|
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:
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:
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:
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:
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 da qual os registros são recuperados. |