A cláusula Where tem por objetivo restringir os registros de
uma consulta, de acordo com o critério utilizado. Em resumo, filtra os
registros.
E porque tenho que filtrar registros? Bem, na maioria das
consultas que irá realizar, o filtro será essencial.
Imagine o seguinte cenário: Uma base de dados de uma escola que
contem a nota de todos os alunos, em todas as matérias, em todos os anos
letivos que o aluno esteve na escola. Deve ser uma base enorme. Agora imagine o
seguinte: Preciso levantar a nota do Joãozinho, no ano de 2013, na matéria de
matemática. Se a base é grande, dificilmente irá procurar registro por registro
até encontrar. Seria como secar gelo, ou encher pneu de trem.
No excel você resolveria essa pesquisa mais ou menos da
seguinte forma:
Figura 01.
No campo nome, filtraria o nome João:
Figura 02.
No campo Materia, filtraria matemática:
Figura 03.
E no campo Ano filtraria 2013:
Figura 04.
Pronto. Agora sabemos qual a nota de João, 6.
Figura 05.
Poderíamos fazer um passo a passo do processo de filtragem que utilizamos:
Selecionamos
todos os campos
da tabela escolar
enquanto
o valor de nome for igual a João
e o valor da materia for igual a matematica
e o ano for igual a 2013.
Esse processo de filtragem não é diferente em Sql. A consulta
Sql para essa tabela seria aproximadamente assim:
SELECT
NOME,
MATERIA,
ANO,
NOTA
FROM
TABELA_ESCOLA
WHERE
NOME = 'João' -- filtro 1
AND MATERIA
= 'Matematica' -— filtro 2
AND ANO =
2013 -- filtro 3
No Books online a sintaxe da instrução where é a seguinte:
WHERE <search_condition>
Onde < search_condition >:
Define a condição a ser atendida para as linhas retornadas. Não
há nenhum limite para o número de predicados que podem ser incluídos em um
critério de pesquisa.
Essa “condição de pesquisa” pode ter algumas variações:
- Condição de pesquisa com igualdade - Utilizada quando o valor (ou conteúdo) de um determinado campo seja exatamente igual a condição de pesquisa.
Sintaxe:
Where [campo] = [valor pesquisado]
Exemplo:
Use
[AdventureWorksDW2014]
GO
select
*
from
[dbo].[DimAccount]
where
AccountKey
= 1
select
*
from
[dbo].[DimAccount]
where
AccountDescription
= 'Assets'
- Condição de pesquisa com operador de comparação - Verifica o campo com as opções de comparação e o valor de pesquisa.
Sintaxe:
Where [campo]
[operador de comparação] [valor pesquisado]
Onde [operador
de comparação]:
> - Maior
< - Menor
<> -
Diferente
<= - Menor
ou igual
>= Maior ou
igual
Exemplos:
Use
[AdventureWorksDW2014]
GO
select
*
from
[dbo].[DimAccount]
where
AccountKey
> 4
select
*
from
[dbo].[DimAccount]
where
AccountKey
< 4
select
*
from
[dbo].[DimAccount]
where
AccountKey
<> 4
select
*
from
[dbo].[DimAccount]
where
AccountKey
>= 4
select
*
from
[dbo].[DimAccount]
where
AccountKey
<= 4
- Operador de pesquisa em uma lista de valores (IN) - Verifica o valor do campo utilizando uma lista de valores. Esses valores são separados por virgula (“,”).
Sintaxe:
Where [campo]
IN ([valor1],[valor2],... [valorN])
Exemplo:
USE
[AdventureWorksDW2014]
GO
SELECT
*
FROM
[dbo].[DimEmployee]
WHERE
MiddleName IN ('J','L','T')
SELECT
*
FROM
[dbo].[DimEmployee]
WHERE
EmployeeKey IN (17,43,49,55)
- Operador de pesquisa entre dois valores (between) - Verifica se o valor do campo está entre dois valores disponibilizados.
Sintaxe:
Where [campo]
Between [valor inicial] and [valor final]
Exemplo:
SELECT
*
FROM
[dbo].[DimEmployee]
WHERE
EmployeeKey Between 17 and 55
- Operador de pesquisa com apenas trechos de um texto (like) - Verifica se o valor do campo contem trecho (ou parte) de um texto pesquisado.
Sintaxe:
Where [campo]
like [%] [valor texto] [%]
Exemplo:
SELECT
*
FROM
[dbo].[DimEmployee]
WHERE
LastName Like 'A%'
SELECT
*
FROM
[dbo].[DimEmployee]
WHERE
LastName Like '%A'
Observação: A
instrução like é mais complexa e tem mais opções do que o apresentado no
exemplo. Será detalhada em um próximo artigo.
Obrigado e até
a próxima!
Referencias:
Operadores
comparação:
Clausula Where:
Like:
Between:
Nenhum comentário:
Postar um comentário