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

时间:2016-05-26 15:51:52

标签: sql oracle delimiter

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

INPUT

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

选择

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

谢谢,

1 个答案:

答案 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