Cláusula WHERE

Especifica que registos das tabelas indicadas na cláusula FROM são afetados por uma instrução SELECT, UPDATE ou DELETE.

Sintaxe

SELECT listadecampos
FROM expressãodetabela
WHERE critérios

Uma instrução SELECT que contenha uma cláusula WHERE tem as seguintes partes:

Parte

Descrição

listadecampos

O nome do campo ou campos a obter juntamente com os aliases de nome do campo, predicados de seleção (ALL, DISTINCT, DISTINCTROW ou TOP) ou outras opções da instrução SELECT.

expressãodetabela

O nome da tabela ou tabelas a partir das quais os dados são obtidos.

critérios

Uma expressão que os registos têm de cumprir para serem incluídos nos resultados da consulta.


Observações

O motor de base de dados do Microsoft Access seleciona os registos que cumprem as condições indicadas na cláusula WHERE. Se não especificar uma cláusula WHERE, a sua consulta devolverá todas as linhas da tabela. Se especificar mais do que uma tabela na sua consulta e não tiver incluído uma cláusula WHERE ou JOIN, a sua consulta gera um Produto cartesiano das tabelas.

A cláusula WHERE é opcional, mas quando é incluída, segue a cláusula FROM. Por exemplo, pode selecionar todos os funcionários no departamento de vendas (WHERE Dept = 'Sales') ou todos os clientes com idades entre os 18 e 30 (WHERE Age Between 18 And 30).

Se não utilizar uma cláusula JOIN para efetuar operações Join de SQL em múltiplas tabelas, o objeto Recordset resultante não será atualizável.

WHERE é semelhante a HAVING. WHERE determina que registos estão selecionados. Da mesma forma, após o agrupamento através de GROUP BY, HAVING determina que registos são apresentados.

Utilize a cláusula WHERE para eliminar os registos que não pretende que sejam agrupadas por uma cláusula GROUP BY.

Utilize várias expressões para determinar que registos são devolvidos pela instrução SQL. Por exemplo, a seguinte instrução SQL seleciona todos os funcionários cujos salários são superiores a 21 000 USD:

SELECT LastName, Salary FROM Employees WHERE Salary > 21000;

Uma cláusula WHERE pode conter até 40 expressões ligadas por operadores lógicos, como E e Ou.

Quando introduz um nome de campo que contém um espaço ou pontuação, coloque o nome entre parênteses retos ([ ]). Por exemplo, uma tabela de informações de cliente pode incluir informações sobre clientes específicos:

SELECT [Customer’s Favorite Restarant]

Quando especifica o argumento critérios, os literais de data têm de estar no formato dos EUA, mesmo que não esteja a utilizar a versão dos EUA do motor de base de dados do Microsoft Access. Por exemplo, 10 de maio de 1996 é escrito como 10/5/96 no Reino Unido e 5/10/96 nos Estados Unidos. Certifique-se de que inclui os seus literais de data com o sinal de cardinal (#) conforme apresentado nos exemplos seguintes.

Para encontrar os registos com a data 10 de maio de 1996 numa base de dados do Reino Unido, tem de utilizar a seguinte instrução SQL:

SELECT * FROM Orders WHERE ShippedDate = #5/10/96#;

Também pode utilizar a função DATA.VALOR que tem conhecimento das definições internacionais estabelecidas pelo Microsoft Windows®. Por exemplo, utilize este código para os Estados Unidos:

SELECT * FROM Orders WHERE ShippedDate = DateValue('5/10/96');

Utilize este código para o Reino Unido:

SELECT * FROM Orders WHERE ShippedDate = DateValue('10/5/96');

Nota: Se a coluna referenciada na cadeia de critérios for do tipo GUID, a expressão de critérios utiliza uma sintaxe ligeiramente diferente:

WHERE ReplicaID = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}}

Certifique-se de que inclui hífenes e chavetas aninhadas conforme apresentado.



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.

×