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
如何解析数据以分号分隔的列?
输入
+ 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