Questa domanda è un duplicato di poche altre, ma alcune delle risposte accettate sono ancora gli inefficienti cicli WHILE o CTE ricorsivi. Ci sono tre modi per realizzare una divisione che non intacchi le prestazioni:
-
Numeri/Tabella di conteggio:http://www.sqlservercentral.com/articles/Tally +Tabella/72993/ (registrazione gratuita richiesta)
-
XML:https://www.simple-talk.com/blogs/2012/01/05/using-xml-to-pass-lists-as-parameters-in-sql-server/
-
SQLCLR:ci sono numerosi esempi di questo su molti siti, ma la soluzione migliore (e più semplice) è prendere quella fornita nell'articolo Numbers / Tally Table sopra riportato O semplicemente installare SQL#(SQLsharp) (Sono l'autore di SQL# ma String_Split e String_Split4k sono nella versione gratuita).