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 欄位的結束位置設定為字串的結尾或分隔符號之前的字元。
此方法可確保程式碼可以處理具有預期分隔符號的行以及不具有預期分隔符號的行,而不會產生錯誤。結果輸出將提供所需的 FirstName 和 LastName 值,即使對於沒有分隔符號的行也是如此,其中缺少的值將顯示為 NULL。 這比原始程式碼更簡潔高效,並且更清晰地處理了缺少分隔符號的情況。
以上是如何在 T-SQL 中拆分缺少分隔符號的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!