Karuta’s ASP & M$ SQLserver

Dicas, códigos e outras coisinhas de meus estudos para não esquecer…

operadores EXCEPT e INTERSECT – sql2005

Posted by karuta em agosto 4, 2008

O EXCEPT e o INTERSECT são operadores novos no SQL SERVER. Eles nos permitem encontrar registros que são comuns em dois sets de dados (tablelas, views, etc) ou registros em um set que não esteja no outro.

EXCEPT

O Operador EXCEPT pode ser usado como alternativas ao operador AND e ao comando NOT EXISTS.

Exemplo 1

Vamos retornar os produtos que tem um preço unitário superior a 18 com o estoque menor que 20 unidades.

Com AND NOT

Select
* from products
where unitprice > 18 AND NOT unitsinStock <20

Com EXCEPT

Select
* from products where unitprice > 18
EXCEPT
Select * from products
where unitsinStock < 20

Exemplo 2

Agora, vamos listar o id dos produtos que não tem pedidos feitos.

Com NOT EXISTS

select
prod.productid from products as prod
where not exists
(
select ord.productid from [order Details] as ORD
         where ord.productid = prod.productid )

Com EXCEPT

select
prod.productid from products as prod
EXCEPT
select
ord.productid from [order Details] as ORD

INTERSECT

O operador INTERSECT é muito similar ao INNER JOIN.

Suponha-se que temos a tabela Orders e uma outra tabela similar chamada ImportedOrders, e queremos saber quais os pedidos da tabela ImportedOrders estão duplicados na tabela Orders.

Com INNER JOIN

Select
ord.orderid, ord.customerid from orders as ord
inner join importedOrders as iord on ord.orderid = iord.orderid and ord.customerid = iord.customerid

Com INTERSECT

select
orderid, customerid  from orders
intersect
select
orderid, customerid  from importedorders

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: