この質問は他のいくつかの質問と重複していますが、受け入れられた回答の一部は依然として非効率的な WHILE ループまたは再帰 CTE です。パフォーマンスを損なわない分割を実現するには、次の 3 つの方法があります。
- <リ>
数値/集計表: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:多くのサイトでこの例が多数ありますが、最善の (そして最も簡単な) 賭けは、上記の Numbers / Tally Table の記事で提供されているものを取得するか、 SQL#(SQLsharp) (私は SQL# の作成者ですが、String_Split と String_Split4k は無料版です)。