sql >> Databasteknik >  >> RDS >> Sqlserver

Använd en CTE många gånger

En CTE är i grunden en engångsvy. Den kvarstår bara för ett enstaka uttalande och försvinner sedan automatiskt.

Dina alternativ inkluderar:

  • Omdefiniera CTE en andra gång. Det här är så enkelt som att kopiera och klistra in från WITH... till och med slutet av definitionen till före din SET .

  • Lägg dina resultat i en #temp tabell eller en @table variabel

  • Materialisera resultaten till en riktig tabell och referera till det

  • Ändra något till bara SELECT COUNT från din 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]


  1. mysql:ta bort rader med upprepade värden med villkor (upprepade kolumner)

  2. hämta en byte-array från en LONG RAW från oracle db

  3. Tabellen är "skrivskyddad"

  4. Hur påverkar {} en MySQL-fråga i PHP?