首頁 >資料庫 >mysql教程 >如何從 T-SQL 中的分隔字串中提取特定值?

如何從 T-SQL 中的分隔字串中提取特定值?

Barbara Streisand
Barbara Streisand原創
2024-12-25 02:37:08776瀏覽

How Can I Extract Specific Values from Delimited Strings in T-SQL?

T-SQL 中使用分隔符分割字串

T-SQL 中,透過分割字串可以實現從長字串中提取特定資訊使用分隔符號。事實證明,這種技術在處理複雜的結構化資料時特別有用。

範例場景

考慮一個表,該表的列中包含一個字串,該字串具有多個鍵值對,這些鍵值對由豎線(|) 和等號(=) 字元。目標是僅檢索與「客戶端名稱」關聯的特定值。

使用 SUBSTRING 和 STUFF 函數的解

要提取所需的值,我們可以利用SUBSTRING 和 STUFF函數的組合:

Select col1, col2, LTRIM(RTRIM(SUBSTRING(
    STUFF(col3, CHARINDEX('|', col3,
    PATINDEX('%|Client Name =%', col3) + 14), 1000, ''),
    PATINDEX('%|Client Name =%', col3) + 14, 1000))) col3
from Table01

細分解

查詢採用以下步驟:

  1. STUFF 功能: 在指定位置新增空格字符,以建立唯一的分隔符包含「客戶端名稱」的鍵值對。
  2. CHARINDEX功能: 找出「客戶端名稱」之前的垂直線字元的位置。
  3. PATINDEX 功能: 識別「客戶端名稱」鍵值分隔符號的位置。
  4. SUBSTRING 功能: 擷取包含「客戶端名稱」的子字串值。
  5. LTRIM 和 RTRIM 函數: 從擷取的值中刪除任何前導或尾隨空格。

效能注意事項

雖然 CharIndex 和 PatIndex 都可以用於分隔符識別,但效能測試顯示它們產生類似的結果。因此,它們之間的選擇往往是優先的。

以上是如何從 T-SQL 中的分隔字串中提取特定值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn