2016-05-26 30 views
-1

如何解析數據以分號分隔的列?SQL:如何解析用分號分隔的列?

INPUT

+ Column1        + 
+--------------------------------------+ 
+ param1=valA;param2=valB;    + 
+ param1=valX;param2=valY;param3=valZ; + 

選擇

valA, valB, null 
valX, valY, valZ 

謝謝輸出,

+0

你可能會做以及嘗試在將數據加載到數據庫之前對數據進行標準化,例如將每個分隔的分配術語放入單獨的列中。 –

回答

3

如果你想三列,你可能要三regexp_substr()

select replace(regexp_substr(col1, 'param1=[^;]*'), 'param1=', '') as param1, 
     replace(regexp_substr(col1, 'param2=[^;]*'), 'param2=', '') as param2, 
     replace(regexp_substr(col1, 'param3=[^;]*'), 'param3=', '') as param3