Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Utiliser un CTE plusieurs fois

Un CTE est essentiellement une vue jetable. Il ne persiste que pour une seule instruction, puis disparaît automatiquement.

Vos options incluent :

  • Redéfinir le CTE une seconde fois. C'est aussi simple que de copier-coller depuis WITH... jusqu'à la fin de la définition avant votre SET .

  • Mettez vos résultats dans un #temp table ou un @table variables

  • Matérialisez les résultats dans un vrai tableau et référencez-le

  • Modifiez légèrement pour juste SELECT COUNT depuis votre 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]