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.

01DECLARE @LMIN INT = 1
02       ,@LMAX INT =20
03 
04;WITH LCTE AS
05(
06    --kontwica
07    SELECT @LMIN AS L
08    UNION ALL -- wymagane ALL
09    SELECT L + 1
10    FROM LCTE
11    WHERE L < @LMAX
12)
13SELECT L
14FROM LCTE
15ORDER BY L
16OPTION (MAXRECURSION 0) -- 0 = bez ograniczenia poziomu zagnieżdżeń rekurencji.

Dariusz Brejnak

Od prawie trzydziestu lat jest pasjonatem informatyki, a zwłaszcza dziedzin dotyczących baz danych, hurtowni danych oraz ogólnie rozumianej tematyki BI. Jego druga pasja to fotografia http://dariuszbrejnak.pl