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.

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