ホームページ >データベース >mysql チュートリアル >区切り文字を使用して T-SQL の文字列を確実に分割する方法
T-SQL 文字列分割: 欠落している区切り文字を賢く処理します
T-SQL で区切り文字に基づいて文字列を分割するのは、特に一部の行で区切り文字が欠落している場合には注意が必要です。この記事では、この問題を解決するための改良された方法を提供します。
データは次のとおりであると仮定します:
<code>John/Smith Jane/Doe Steve Bob/Johnson</code>
元のコード:
次のコードはデータを分割しようとしますが、区切り文字が欠落していると失敗します:
<code>SELECT SUBSTRING(myColumn, 1, CHARINDEX('/', myColumn)-1) AS FirstName, SUBSTRING(myColumn, CHARINDEX('/', myColumn) + 1, 1000) AS LastName FROM MyTable</code>
改善されたコード:
区切り文字が欠落している場合に対処するには、次の CASE 式を使用できます:
<code>SELECT SUBSTRING(myColumn, 1, CASE CHARINDEX('/', myColumn) WHEN 0 THEN LEN(myColumn) ELSE CHARINDEX('/', myColumn) - 1 END) AS FirstName ,SUBSTRING(myColumn, CASE CHARINDEX('/', myColumn) WHEN 0 THEN LEN(myColumn) + 1 ELSE CHARINDEX('/', myColumn) + 1 END, 1000) AS LastName FROM MyTable</code>
説明:
このコードは期待どおりの結果を生成します:
<code>FirstName---LastName John--------Smith Jane--------Doe Steve-------NULL Bob---------Johnson</code>
以上が区切り文字を使用して T-SQL の文字列を確実に分割する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。