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:
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.
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.
Show!
ResponderExcluirSimples e direto!
ResponderExcluirMuito Objetivo! Showww
ResponderExcluir