Jedną z zalet użycia CTE (Common Table Expresion) jest możliwość zastosowania rekurencji. Poniżej przykład rekurencyjnego CTE zwracającego wybrany zakres liczb.
DECLARE @LMIN INT = 1
,@LMAX INT =20
;WITH LCTE AS
(
--kontwica
SELECT @LMIN AS L
UNION ALL -- wymagane ALL
SELECT L + 1
FROM LCTE
WHERE L < @LMAX
)
SELECT L
FROM LCTE
ORDER BY L
OPTION (MAXRECURSION 0) -- 0 = bez ograniczenia poziomu zagnieżdżeń rekurencji.