Den här frågan är en dubblett av några andra, men några av de accepterade svaren är fortfarande de ineffektiva WHILE-slingorna eller rekursiva CTE:erna. Det finns tre sätt att åstadkomma en split som inte dödar prestanda:
-
Numbers/Tally Table:http://www.sqlservercentral.com/articles/Tally +Tabell/72993/ (friregistrering krävs)
-
XML:https://www.simple-talk.com/blogs/2012/01/05/using-xml-to-pass-lists-as-parameters-in-sql-server/
-
SQLCLR:det finns många exempel på detta på många sajter men din bästa (och enklaste) insats är att antingen ta tag i den som finns i artikeln i Numbers / Tally Table som anges ovan ELLER bara installera SQL#(SQLsharp) (Jag är författare till SQL# men String_Split och String_Split4k finns i gratisversionen).