在一个列中输入数据
v1.segments
{"segmentid":"INS","content":"Y:18:030:XN:A:::FT"},{"segmentid":"REF","content":"0F:999999999"},{"segmentid":"REF","content":"1L:999999999"},{"segmentid":"REF","content":"23:999999999"},{"segmentid":"DTP","content":"356:D8:20180301"}
想知道是否有一种方法可以使用json_tuple引用与“ segmentid”匹配的下一个元素。我可以退还第一个
下面列为v2.segmentid
select v1.loopid, v1.segments, v2.segmentid
from app_fwa_chc.834_test_CHC_brad_2
LATERAL VIEW json_tuple(loop_2000,'loopid', 'segments') v1
as loopid, segments
LATERAL VIEW json_tuple(regexp_replace(regexp_replace(segments,"\\[",""),"\\]",""),'segmentid', 'content') v2
as segmentid, content
WHERE row_id=1
v2.segmentid
INS
我尝试引用,因为我会基于拆分...
select v1.loopid, v1.segments, v2.segmentid[0], v2.segmentid[1]
我从这里开始的道路是根据逗号进行拆分,这将是有问题的。
A)因为逗号在我的{}
中B)如果我基于}进行拆分,{-那么我将不得不重新添加花括号,以便使用json_tuple进一步处理数据。
想知道在我将一个非常复杂的过程变得更复杂之前是否缺少一些简单的东西。
谢谢