关于数据从集合中提取转置

源数据:
名称 | 组成明细
可乐22oz | {可乐杯22oz:1;可口可乐糖浆:100}

想要的结果
名称 | 可乐杯22oz | 可口可乐糖浆
可乐22oz | 1 | 100

你这个组成明显真长这样?确定不是这样?

 {"可乐杯22oz":"1","可口可乐糖浆":"100"}

如果是json的话,可以直接用json相关的函数进行解析,如果是你题目里这种格式,就只能先转成json再读了。
而且你这组成明细是不是只有这两种?如果明细是不确定的,那就不能一步到位了,因为一个查询sql必须有确定的列数,先假定只有这两种吧

with t as (
select name, replace(replace(replace(replace(memo,'{','{"'),'}','"}'),':','":"'),';','","') memo from TEST_JSON)
select name ,
cast(JSON_EXTRACT(memo,'$.可乐杯22oz') as DECIMAL) 可乐杯22oz,
cast(JSON_EXTRACT(memo,'$.可口可乐糖浆') as DECIMAL) 可口可乐糖浆 
from t

img