使用SQL Server 將逗號分隔的單元格值轉換為單獨的行
在處理表中的資料時,有時可能會遇到儲存的值作為單一儲存格內以逗號分隔的字串。為了便於分析或進一步處理,可能需要將這些值拆分為單獨的行。本文探討如何使用 SQL Server SELECT 查詢來實現此目標。
問題:
考慮一個名為「Sample」的表,其中有一個名為「String」的列,包含逗號分隔值。您需要將資料轉換為每個值佔據自己一行的格式:
原始表:
Id | String |
---|---|
1 | abc,def,ghi |
2 | jkl,mno,pqr |
所需輸出:
Id | processedrows |
---|---|
1 | abc |
1 | def |
1 | ghi |
2 | jkl |
2 | mno |
2 | pqr |
解決方案:
要獲得所需的輸出,您可以使用以下SELECT查詢:
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);
解釋:
參考:
有關此技術和替代解決方案的更多信息,請參閱以下資源:
http:/ / /www.sqljason.com/2010/05/converting-single-comma-separated-row.html
以上是如何使用 SQL Server 將逗號分隔的儲存格值轉換為單獨的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!