Używamy cookies, żeby zwiększyć Twoje doświadczenia na stronie
CodeWorlds

Wyrażenia CTE (WITH) - czytelne zapytania

Gdy zapytanie robi się długie i zagnieżdżone, łatwo się w nim pogubić. Z pomocą przychodzi CTE (Common Table Expression) - sposób na nazwanie tymczasowego wyniku, zanim użyjemy go dalej.

Składnia WITH

CTE zaczyna się od słowa kluczowego WITH:

1WITH drogie_ksiazki AS (
2  SELECT tytul, cena FROM ksiazki WHERE cena > 50
3)
4SELECT * FROM drogie_ksiazki;

Tworzymy tymczasowy "regał" o nazwie

drogie_ksiazki
, a potem odwołujemy się do niego w głównym zapytaniu - tak jak do zwykłej tabeli. Po wykonaniu zapytania CTE znika.

Dlaczego to lepsze?

Porównaj z podzapytaniem zagnieżdżonym w środku - CTE czyta się od góry do dołu, jak opowieść:

  1. najpierw definiujemy, czym są "drogie księgi",
  2. potem z nich korzystamy.

CTE to nie widok

  • Widok zapisujemy w bazie na stałe (
    CREATE VIEW
    ).
  • CTE żyje tylko przez jedno zapytanie - to chwilowa notatka Strażnika.

CTE świetnie sprawdza się przy złożonych raportach, gdzie kilka kroków buduje się jeden na drugim. Dzięki niemu nawet skomplikowane zapytanie pozostaje przejrzyste.

Przejdź do CodeWorlds