本文介紹了在SQL或Python中,如何根據分隔符分隔數據?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我的輸入數據如下:
Column1 Column2 Column3
Silver Bridge;#400;#Pool;#410;#Garden;#427;#Lawn;#591;#Shed;#1337 Aaron
Diamond Meadow;#492 Mike
Gold Gas;#360;#Electricity;#1991 Judy
我需要按如下方式獲取輸出:
Column1 Column2 NewColumn Column3
Silver Bridge 400 Aaron
Silver Pool 410 Aaron
Silver Garden 427 Aaron
Silver Lawn 591 Aaron
Silver Shed 1337 Aaron
Diamond Meadow 492 Mike
Gold Gas 360 Judy
Gold Electricity 1991 Judy
注意:此處用于分隔數據的分隔符是‘;#’。嘗試在第一個分隔符(;#)出現后創建新列,并在第二個分隔符(;#)出現后創建一行,應繼續為數據單元格創建新列。
解決方案可以使用SQL或Python,但最好是使用SQL。
我嘗試了一些方法,但在輸出中,我可以按列或按行分隔,但在這里,我們需要交替按列和行分隔。我認為可以通過運行循環來完成,但到目前為止都不起作用。
推薦答案
SQL Server中的一個選項是在交叉應用中使用一點JSON和條件聚合
示例或dbFiddle
Select A.Column1
,B.Column2
,B.NewColumn
,A.Column3
From YourTable A
Cross Apply (
Select Column2 = max(case when [Key] % 2 = 0 then Value end)
,NewColumn = max(case when [Key] % 2 = 1 then Value end)
From OpenJSON( '["'+replace(string_escape([Column2],'json'),';#','","')+'"]' )
Group By [Key] / 2
) B
結果
這篇關于在SQL或Python中,如何根據分隔符分隔數據?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,