首頁 > 資料庫 > mysql教程 > 如何使用分隔符號在 T-SQL 中穩健地拆分字串?

如何使用分隔符號在 T-SQL 中穩健地拆分字串?

Barbara Streisand
發布: 2025-01-08 09:37:45
原創
655 人瀏覽過

How to Robustly Split Strings in T-SQL Using Delimiters?

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>
登入後複製

說明:

  • CASE表達式檢查分隔符號(/)是否存在。
  • 如果存在,表達式會根據分隔符號的位置計算FirstName和LastName的長度。
  • 如果不存在,表達式將使用字串的整個長度作為FirstName,並將LastName設為NULL。

此程式碼將產生預期的結果:

<code>FirstName---LastName
John--------Smith
Jane--------Doe
Steve-------NULL
Bob---------Johnson</code>
登入後複製

以上是如何使用分隔符號在 T-SQL 中穩健地拆分字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板