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

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

DDD
DDD原創
2024-12-16 18:24:11559瀏覽

How to Extract Specific Values from Delimited Strings in Transact-SQL?

在 Transact-SQL 中使用分隔符號分割字串

處理表中的複雜字串值時,經常需要擷取特定資訊。這可以透過使用分隔符號定義字串的結構來實現。

一個這樣的場景是一個表格的例子,其中的列包含如下字串:

Col3 = 'Clent ID = 4356hy|Client Name = B B BOB|Client Phone = 667-444-2626|Client Fax = 666-666-0151|Info = INF8888877 -MAC333330554/444400800'

這裡,我們有分隔鍵值對的特定分隔符號:「|」來劃分列,並用“=”(包括空格)來分隔鍵和值。目標是提取「客戶端名稱」值,在本例中為「B B BOB」。

要實現此目的,可以結合使用字串運算子和條件語句。一種方法是使用 CHARINDEX 或 PATINDEX 函數來定位字串中所需值的位置。

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

在此查詢中,PATINDEX 用來尋找 'Client Name =' 的起始位置,然後透過新增 14 來跳過這部分。然後,使用 CHARINDEX 來尋找下一個「|」的位置。最後,SUBSTRING 函數會擷取這些位置之間所需的值,LTRIM 和 RTRIM 用於修剪任何前導或尾隨空格。

值得注意的是,用於此任務的具體函數可能會根據複雜性而有所不同字串和期望的結果。

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

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