Cette question est un doublon de quelques autres, mais certaines des réponses acceptées sont toujours les boucles WHILE inefficaces ou les CTE récursifs. Il existe trois façons d'effectuer un fractionnement sans nuire aux performances :
-
Numéros / Table de pointage :http://www.sqlservercentral.com/articles/Tally +Table/72993/ (inscription gratuite requise)
-
XML :https://www.simple-talk.com/blogs/2012/01/05/using-xml-to-pass-lists-as-parameters-in-sql-server/
-
SQLCLR :il existe de nombreux exemples de cela sur de nombreux sites, mais votre meilleur pari (et le plus simple) est soit de saisir celui fourni dans l'article Numéros / Table de pointage indiqué ci-dessus OU d'installer simplement SQL#(SQLsharp) (Je suis l'auteur de SQL# mais String_Split et String_Split4k sont dans la version gratuite).