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

如何在 SQL Server 中將逗號分隔值分割為行?

DDD
發布: 2025-01-05 08:24:43
原創
161 人瀏覽過

How Can I Split Comma-Separated Values into Rows in SQL Server?

將逗號分隔的值拆分為行

在SQL Server 中,將儲存在表格列中的逗號分隔字串轉換為多行可以使用XML 和字串操作技術的組合來實現。目標是將包含帶有逗號分隔字串的單行的表轉換為包含多行的表,每行包含原始字串中的唯一值。

要實現此目的,請按照以下步驟操作:

  1. 將字串轉換為XML 片段: 用XML 標籤包以逗號分隔的,將其轉換為XML 片段。此操作為每個值新增開始和結束標記,建立分層 XML 結構。
  2. 使用 CROSS APPLY 分割 XML 片段:使用 CROSS APPLY 運算子將 XML 片段分割為單獨的 XML 片段。節點。每個節點代表原始字串中的單一值。
  3. 從節點中提取值:將 VALUE() 方法應用於每個節點,以將實際值提取為字串。這會將 XML 節點轉換回可用的資料類型。
  4. 組合 id 和提取的值: 將提取的值與原始表的 id 列連接以建立新表。這可確保每個值都與原始表中的對應行相關聯。

以下範例查詢示範了此流程:

SELECT A.[id],
       Split.a.value('.', 'VARCHAR(100)') AS String
FROM (SELECT [id],
             CAST ('<M>' + REPLACE([string], ',', '</M><M>') + '</M>' AS XML) AS String
         FROM TableA) AS A CROSS APPLY String.nodes ('/M') AS Split(a);
登入後複製

此查詢將產生所需的輸出,其中原始表中的每一行都擴展為多行,每行包含來自逗號分隔字串的單一值。

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

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