Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Use um CTE muitas vezes


Um CTE é basicamente uma visão descartável. Ele persiste apenas por uma única instrução e desaparece automaticamente.

Suas opções incluem:

  • Redefina o CTE uma segunda vez. Isso é tão simples quanto copiar e colar de WITH... até o final da definição para antes de seu SET .

  • Coloque seus resultados em um #temp tabela ou uma @table variável

  • Materialize os resultados em uma tabela real e faça referência a isso

  • Altere ligeiramente para apenas SELECT COUNT do seu CTE:

.
SELECT @total = COUNT(*)
FROM Players p 
INNER JOIN Teams t 
    ON p.IdTeam=t.Id 
INNER JOIN Leagues l 
    ON l.Id=t.IdLeague
WHERE [email protected]