SQL: 如何解析以分号分隔的列?

SQL: How to parse a column delimited with semicolon?

如何解析数据以分号分隔的列?

输入

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

select

的输出
valA, valB, null
valX, valY, valZ

谢谢,

如果你想要三列,你可能需要三个 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