次のアルゴリズムの目的は、キーから特定のフィールドセットを抽出することです(この例では、最初の2つのフィールドを抽出します)。@fields;結果:フィールド-1:フィールド-2Microsoftドキュメントは、最初のパラメーターはexpressionであると述べていますが、CHARINDEXのコンテキストでは、この式は文字列リテラルに評価される必要があると考えています。したがって、次の正規表現を渡して2番目のオカレンスを取得しようとしても機能しません。@key);つまり、RegExを使用して特定のテキスト内の区切り文字のn番目のオカレンスの位置を見つけることができるので、複数のネストされたCHARINDEXまたは解析するループを回避できますか?脇に置いて、nがパラメーターとして渡されると、静的ネストを使用することさえできなくなります...助けてくれてありがとう。1文字列のn番目の部分文字列を抽出する簡単な方法はありません。以下は、セットベースの再帰的CTEアプローチです。2文字列の末尾に「:」を追加したことに注意してください。必要に応じて調整してください。