To pytanie jest duplikatem kilku innych, ale niektóre z akceptowanych odpowiedzi to wciąż nieefektywne pętle WHILE lub rekurencyjne CTE. Istnieją trzy sposoby na wykonanie podziału, który nie zmniejszy wydajności:
-
Numbers / Tally Table:http://www.sqlservercentral.com/articles/Tally +Tabela/72993/ (wymagana bezpłatna rejestracja)
-
XML:https://www.simple-talk.com/blogs/2012/01/05/using-xml-to-pass-lists-as-parameters-in-sql-server/
-
SQLCLR:istnieje wiele przykładów na wielu stronach, ale najlepszym (i najłatwiejszym) rozwiązaniem jest albo skorzystanie z podanego w artykule Numbers / Tally Table wspomnianym powyżej LUB po prostu zainstalowanie SQL#(SQLsharp) (Jestem autorem SQL#, ale String_Split i String_Split4k są w wersji darmowej).