Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Użyj jednego CTE wiele razy

CTE to w zasadzie widok jednorazowego użytku. Utrzymuje się tylko dla pojedynczego stwierdzenia, a następnie automatycznie znika.

Twoje opcje obejmują:

  • Przedefiniuj CTE drugi raz. Jest to tak proste, jak kopiowanie i wklejanie z WITH... przez koniec definicji do przed SET .

  • Umieść swoje wyniki w #temp tabela lub @table zmienna

  • Zmaterializuj wyniki w prawdziwej tabeli i odnieś się do tego

  • Zmień nieznacznie, aby po prostu SELECT COUNT z Twojego 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Porównanie maszyn wirtualnych w chmurze z zarządzaną bazą danych w chmurze

  2. Zalogowani użytkownicy po pewnym czasie zostają wylogowani

  3. Nie można cofnąć pozwolenia udzielonego przez innego użytkownika

  4. Jak mogę zoptymalizować/refaktoryzować klauzulę TSQL LIKE?

  5. Jaka jest najlepsza metoda przekazywania parametrów do SQLCommand?