PAYCHANNELDETAIL表中间字段acquire_type是json格式如下
Json代码
- [{"payAmount":"375000","payChannelCode":"BOC"},{"payAmount":"376000","payChannelCode":"ABC"}]
下面是数据拆解操作
Sql代码
- select pay_order_id,tag1,bill_date
- from (
- select pay_order_id,substr(acquire_type,2,length(acquire_type)-2) tags,bill_date from dd.PAYCHANNELDETAIL
- ) ta lateral view explode(split(tags, '},')) r1 as tag1
- ;
查询结果如下:
Java代码
- 1603150000007617360 {"payAmount":"375000","payChannelCode":"BOC"} 2016-03-15
- 1603150000007617360 {"payAmount":"376000","payChannelCode":"ABC"} 2016-03-15
json属性拆解
Sql代码
- SELECT
- pay_order_id,
- get_json_object(subjson,'$.payAmount') as payAmount,
- get_json_object(subjson,'$.payChannelCode') as payChannelCode,
- bill_date
- FROM
- dd.PAYCHANNELDETAIL_SUBJSON