sql >> Base de Datos >  >> RDS >> Sqlserver

Usa un CTE muchas veces

Un CTE es básicamente una vista desechable. Solo persiste durante una declaración y luego desaparece automáticamente.

Sus opciones incluyen:

  • Redefinir el CTE por segunda vez. Esto es tan simple como copiar y pegar desde WITH... hasta el final de la definición hasta antes de su SET .

  • Pon tus resultados en un #temp tabla o un @table variables

  • Materialice los resultados en una tabla real y haga referencia a eso

  • Cambie ligeramente a solo SELECT COUNT de tu 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]