首頁 > 資料庫 > mysql教程 > 如何從 SQL 中以逗號分隔的列值中提取行?

如何從 SQL 中以逗號分隔的列值中提取行?

Susan Sarandon
發布: 2025-01-03 03:39:39
原創
688 人瀏覽過

How to Extract Rows from Comma-Separated Column Values in SQL?

從逗號分隔的列值中提取行

問題:

給定一個包含逗號分隔列的表值,目標是將每個值轉換為單獨的值rows.

查詢:

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

解釋:

    查詢🎜>內部一個名為的新欄位將原始逗號分隔值包裝在XML 標記內的字串。這是透過使用 CAST 和 REPLACE 函數將值轉換為格式良好的 XML 字串來完成的。
  1. 外部查詢執行交叉應用,以使用節點函數將 XML 字串解析為節點。每個節點代表一個逗號分隔的值。
  2. a.value('.','VARCHAR(100)') 表達式將 a 節點的值提取為 VARCHAR(100) 資料型態。這為我們提供了單獨處理的行。

參考:

    [使用 SQL將單一逗號分隔的行值轉換為多行XML](http://www.sqljason.com/2010/05/converting-single-comma-separated-row.html)

以上是如何從 SQL 中以逗號分隔的列值中提取行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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