Nimetu
WITH ()
AS
(
)
SELECT * FROM
CTE abil on võimalik vältida ajutiste tabelite ning alampäringute kasutamist. See omakorda
muudab päringu ülevaatlikumaks ning lihtsamaks.
Näiteks soovime tegelda ainult Tallinnas (kood 1) sündinud lastega. Sellisel juhul saame endale
kirjeldada CTE, milles sisalduvad vaid Tallinna lapsed ning kasutada seda oma päringus nagu iga
teist tabelit või vaadet:
WITH TallinnaLapsed
AS
(
SELECT *
FROM dbo.Laps_tbl
WHERE SynniLinn = 1
)
SELECT *
FROM TallinnaLapsed
ORDER BY Nimi
CTE tõeline jõud tuleb aga ilmsiks kui läbi rekursiivsete päringute. Rekursiivsed SQL päringud olid
ka põhiline idee CTE loomise taga.
Rekursiivse päringu loomiseks tuleb CTE tekitada UNION päringu abil, milles on kaks liiget ankur
(alguspunkt päringule) ning rekursiivne liig (iseendale viitav päring).