Mais Populares

5 de fevereiro de 2015

O que é Cross Apply - SQL Server

No SQL Server, você pode fazer um INNER JOIN para juntar em uma consulta resultado de várias tabelas. Entretanto ao consultar uma outra tabela com muitos
resultados, a consulta pode demorar muito tempo.

Com isto, no SQL Server, há o comando CROSS APPLY, onde você pode inserir uma query personalizada para realizar a consulta.

Veja o exemplo à seguir:



SELECT * FROM Clientes CROSS APPLY ( SELECT COUNT(*) AS Total, MAX(Data) AS DataMaxima FROM Utilizacao WHERE Utilizacao.ID_Usuario = Clientes.ID GROUP BY Utilizacao.ID_Usuario HAVING COUNT(*) > 5 ) CROSS_APELIDO

O resultado disto é a junção da tabela Clientes mais as colunas de de Total e DataMaxima de todos os clientes que aparecem mais de 5 vezes na segunda tabela.

Com INNER JOIN, não teria como inserir o HAVING, nem realizar GROUP BY, demandando o SQL Server trazer e juntar todos os dados antes do processo, e provavelmente realizar várias consultas ou sub-consultas demandando mais tempo de construção.

2 comentários :

Deixe seu comentário abaixo e curta Tutorial TI no facebook!