Esta pergunta é uma duplicata de algumas outras, mas algumas das respostas aceitas ainda são os loops WHILE ineficientes ou CTEs recursivos. Existem três maneiras de realizar uma divisão que não vai matar o desempenho:
-
Tabela de números / Tally:http://www.sqlservercentral.com/articles/Tally +Tabela/72993/ (inscrição gratuita necessária)
-
XML:https://www.simple-talk.com/blogs/2012/01/05/using-xml-to-pass-lists-as-parameters-in-sql-server/
-
SQLCLR:existem vários exemplos disso em muitos sites, mas sua melhor (e mais fácil) aposta é pegar o fornecido no artigo Numbers / Tally Table mencionado acima OU apenas instalar SQL#(SQLsharp) (Eu sou o autor do SQL# mas String_Split e String_Split4k estão na versão gratuita).