首頁 >資料庫 >mysql教程 >如何將逗號分隔值轉換為 SQL Server 中的行?

如何將逗號分隔值轉換為 SQL Server 中的行?

Linda Hamilton
Linda Hamilton原創
2025-01-03 08:28:39282瀏覽

How to Convert Comma-Separated Values to Rows in SQL Server?

將逗號分隔值轉換為行結構資料

在SQL Server 中,當資料以逗號分隔格式儲存在列中時,提取和操縱個人價值觀可能具有挑戰性。本文示範如何使用選擇查詢將此類資料轉換為行結構格式。

考慮一個名為 Sample 的表,其中包含一個名為 String的列,其中包含逗號-分隔值,例如:

Id String
1 abc,def,ghi
2 jkl,mno,pqr

要提取各個值並將其呈現為行,我們可以使用以下方法步驟:

  1. String 列包裹在XML 標籤內:

    CAST ('<M>' + REPLACE([string], ',', '</M><M>') + '</M>' AS XML)

    這將會建立一個XML 片段,其中每個值都封裝在< 中;M>

  2. 使用CROSS APPLY 運算子執行分層查詢:

    CROSS APPLY String.nodes ('/M') AS Split(a)

    這會在XML片段上交叉應用節點方法,從而產生一個新的每個的行標籤,其中包含各個值。

  3. Id 列與Split(a).value('text()') 表達式:

    SELECT A.[id], Split.a.value('.','VARCHAR(100)') AS String
    FROM (SELECT [id], CAST('...AS XML) AS String FROM Sample) AS A
    這會將Id 與提取的值相匹配,並將它們作為單獨的值返回行。

結果將類似於所需的輸出:

Id ProcessedRows
1 abc
1 def
1 ghi
2 jkl
2 mno
2 pqr
此技術可以將逗號分隔值提取和呈現為行,從而實現高效分析和數據處理。

以上是如何將逗號分隔值轉換為 SQL Server 中的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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