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中文網其他相關文章!