Този въпрос е дубликат на няколко други, но някои от приетите отговори все още са неефективните цикли WHILE или рекурсивни CTE. Има три начина за извършване на разделяне, което няма да убие производителността:
-
Числа / таблица с изчисления:http://www.sqlservercentral.com/articles/Tally +Таблица/72993/ (изисква се безплатна регистрация)
-
XML:https://www.simple-talk.com/blogs/2012/01/05/using-xml-to-pass-lists-as-parameters-in-sql-server/
-
SQLCLR:има много примери за това на много сайтове, но най-добрият (и най-лесният) залог е или да вземете този, предоставен в статията за числата / таблицата за изчисления, отбелязана по-горе, ИЛИ просто да инсталирате SQL#(SQLsharp) (Аз съм автор на SQL#, но String_Split и String_Split4k са в безплатната версия).