Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Utilizzare un CTE molte volte

Un CTE è fondamentalmente una vista usa e getta. Persiste solo per una singola istruzione, quindi scompare automaticamente.

Le tue opzioni includono:

  • Ridefinire il CTE una seconda volta. È semplice come copiare e incollare da WITH... fino alla fine della definizione fino a prima del tuo SET .

  • Inserisci i risultati in un #temp table o un @table variabile

  • Materializza i risultati in una tabella reale e fai riferimento a quella

  • Modifica leggermente solo SELECT COUNT dal tuo 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]