Moje pytanie dotyczy różnicy między CTE
a View
w SQL. Chodzi mi o to, w którym przypadku powinienem użyć CTE
, a w przypadku View
. Wiem, że oba są wirtualnymi stołami, ale nie potrafię ich rozróżnić.SQL - CTE vs VIEW
Znalazłem podobne pytanie here, ale chodzi o wydajność.
Aktualizacja 1:
Na przykład: Mam bazę danych wypełnioną transakcji (tbl_trade
). Muszę wybrać z 3,5 milionów rekordów tylko transakcje, które zostały otwarte w bieżącym miesiącu do bieżącego czasu, a następnie manipulować danymi (z różnymi zapytaniami na wirtualnym stole - wygląda to jak View). Problem polega na tym, że chcę SUM
z 3-4 kolumn, a następnie muszę SUM
niektóre kolumny i utworzyć wirtualną kolumnę z wynikiem (wygląda jak CTE).
Np .: tbl_trade
ma kolumny: profit
, bonus
i expenses
. Potrzebuję SUM(profit)
, SUM(bonus)
,i nową kolumnę total
, która będzie równa SUM(profit)
+ SUM(bonus)
+ SUM(expenses)
.
PS. Ponowne sprawdzanie zapytań o numer SUM
nie jest opcją, ponieważ mam już wynik.
Z góry dziękuję!
Widok jest obiektem w bazie danych. CTE istnieje tylko przez czas trwania pojedynczego zapytania. Wydają się zupełnie inne. Czy możesz podać przykład wyboru między nimi? –
Ile danych masz do czynienia? CTE intensywnie używa TempDb i jeśli twój TempDb nie jest poprawnie skonfigurowany lub twój CTE ma do czynienia z dużą liczbą rzędów, to nie jest to najlepszy zakład. Wybierz opcję View, gdy masz do czynienia z dużą ilością danych, a CTE z małą. Możesz wybrać CTE również wtedy, gdy potrzebujesz rekursji. To wszystko ! –
Witam i dziękuję za odpowiedzi. zobacz zaktualizowane pytania – BlackM