Certains me désignent sur le forum SQL Server comme l’homme qui murmure à l’oreille des CTE.
En voici donc une nouvelle !
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | --------------------------------- -- Nicolas SOUQUET - 01/07/2009 - --------------------------------- DECLARE @toto VARCHAR(50) = 'ABCDEFGHIJKLM' SELECT LEN(@toto) ;WITH CTE AS ( SELECT SUBSTRING(@toto, 1, 4) AS sousChaine, 1 AS nFinSousChaine UNION ALL SELECT SUBSTRING(@toto, nFinSousChaine + 4, 4) AS sousChaine, nFinSousChaine + 4 AS nFinSousChaine FROM CTE WHERE nFinSousChaine <= LEN(@toto) ) SELECT sousChaine FROM CTE WHERE nFinSousChaine <= LEN(@toto) |
Retourne :
sousChaine
———-
ABCD
EFGH
IJKL
M
ElSuket