T-SQL での区切り文字ベースの文字列分割、欠落している区切り文字の処理
T-SQL では、特定の区切り文字が常に存在するわけではない場合でも、特定の区切り文字に基づいて文字列を分割する必要がある場合があります。このタスクは通常、SUBSTRING 関数を使用して実行されます。ただし、質問で提供されているコードは、行に予期される区切り文字がない場合に失敗します。
この問題を解決するには、次の変更コードを検討してください:
<code class="language-sql">SELECT CASE WHEN CHARINDEX('/', myColumn) = 0 THEN myColumn ELSE SUBSTRING(myColumn, 1, CHARINDEX('/', myColumn) - 1) END AS FirstName, CASE WHEN CHARINDEX('/', myColumn) = 0 THEN NULL ELSE SUBSTRING(myColumn, CHARINDEX('/', myColumn) + 1, LEN(myColumn)) END AS LastName FROM MyTable;</code>
このコードでは、CASE ステートメントを使用して、FirstName 列と LastName 列の部分文字列の開始位置と終了位置を決定します。 FirstName 列の開始位置は、文字列の先頭 (区切り文字が見つからない場合)、または区切り文字の前の文字に設定されます。同様に、FirstName 列の終了位置は、文字列の末尾または区切り文字の前の文字に設定されます。
このメソッドにより、コードは、予期される区切り文字を含む行と予期される区切り文字を持たない行を、エラーを生成することなく処理できるようになります。結果の出力では、区切り文字のない行であっても、欠落している値が NULL として表示される場合でも、必要な FirstName と LastName の値が提供されます。 これは元のコードよりも簡潔かつ効率的で、欠落している区切り文字をより明確に処理します。
以上が区切り文字が欠落している T-SQL の文字列を分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。