terça-feira, 13 de novembro de 2012

Sql Server Operador BETWEEN

Olá pessoal, o operador lógico BETWEEN é utilizado no Sql Server quando se deseja resgatar dados baseados num intervalo a ser especificado na clausula WHERE. Sua sintaxe é:

test_expression [ NOT ] BETWEEN begin_expression AND end_expression

Onde:

  • test_expression é a expressão a ser testada no intervalo definido em begin_expression e end_expression;
  • NOT é o operador lógico opcional para negar o resultado do teste;
  • begin_expression é uma expressão que indica o valor inicial do teste;
  • end_expression é uma expressão que indica o valor final do teste;
  • AND operador lógico que indica que test_expression deve estar dentro do intervalo (ou fora caso o operador NOT seja utilizado) compreendido entre begin_expression e end_expression.
Obs.: test_expression, begin_expression e end_expression devem ser do mesmo tipo de dados.

Vamos a alguns exemplos (utilizando o banco AdventureWorks disponibilizado aqui):

1- Selecionar os funcionários com taxa de pagamento entre 27 e 30.


SELECT e.FirstName, e.LastName, ep.Rate
FROM HumanResources.vEmployee e 
JOIN HumanResources.EmployeePayHistory ep 
ON e.BusinessEntityID = ep.BusinessEntityID
WHERE ep.Rate BETWEEN 27 AND 30
ORDER BY ep.Rate;

Com este exemplo podemos verificar que o operador BETWEEN é inclusivo, ou seja, os valores dos extremos do intervalo são levados em consideração.

2- Selecionar os funcionários com taxa de pagamento fora do intervalo 27 a 30.

SELECT e.FirstName, e.LastName, ep.Rate
FROM HumanResources.vEmployee e 
JOIN HumanResources.EmployeePayHistory ep 
ON e.BusinessEntityID = ep.BusinessEntityID
WHERE ep.Rate NOT BETWEEN 27 AND 30
ORDER BY ep.Rate;

Neste caso utilizamos o operador NOT para obter o resultado desejado. 

Versão do Sql Server utilizada:
Microsoft SQL Server 2008 (SP3) - 10.0.5512.0

Nenhum comentário:

Postar um comentário