terça-feira, 15 de setembro de 2009

Clausulas SQL IN, Having, Constains e Like

Muitas pessoas não conhecem ou não fazem uso de clausulas SQL que podem realmente salvar um dia! Perguntas sobre tais clausulas também são constantemente feitas em entrevistas de empregos. Neste post pretendo mostras brevemente o IN, Having, Constains e Like.

IN
Determina se um valor especificado corresponde a qualquer valor em uma sub-consulta ou uma lista. Exemplos:
SELECT FirstName, LastName, e.Title
FROM HumanResources.Employee AS e
JOIN Person.Contact AS c
ON e.ContactID = c.ContactID
WHERE e.Title IN ('Design Engineer', 'Tool Designer', 'Marketing Assistant');

Exemplo utilizando o resultado de outra query:
SELECT FirstName, LastName
FROM Person.Contact AS c
JOIN HumanResources.Employee AS e
ON e.ContactID = c.ContactID
WHERE EmployeeID IN
(SELECT SalesPersonID
FROM Sales.SalesPerson
WHERE SalesQuota > 250000);

HAVING
Especifica um critério de pesquisa para um grupo ou um agregado. HAVING pode ser usado somente com a instrução SELECT. HAVING é usado normalmente em uma cláusula GROUP BY. Quando GROUP BY não é usado, HAVING se comporta como uma cláusula WHERE. Exemplo:
SELECT SalesOrderID, SUM(LineTotal) AS SubTotal
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID
HAVING SUM(LineTotal) > 100000.00
ORDER BY SalesOrderID ;

CONTAINS
É um predicado usado em uma cláusula WHERE para pesquisar colunas que contêm tipos de dados baseados em caracteres para obter correspondências precisas ou difusas (menos precisas) para palavras e frases únicas, a proximidade de palavras com uma determinada distância entre si ou correspondências ponderadas. Exemplo:
SELECT Name, ListPrice
FROM Production.Product
WHERE ListPrice = 80.99
AND CONTAINS(Name, 'Mountain');

LIKE
Determina se uma cadeia de caracteres específica corresponde a um padrão especificado. Exemplo:
SELECT *
FROM t
WHERE col1 LIKE '% da Silva'

Enjoy!

Nenhum comentário:

Postar um comentário