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.
01 | DECLARE @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 | ) |
13 | SELECT L |
14 | FROM LCTE |
15 | ORDER BY L |
16 | OPTION (MAXRECURSION 0) -- 0 = bez ograniczenia poziomu zagnieżdżeń rekurencji. |