SQL 语法解析:从 JSON 对象中提取值并进行条件分割
这段 SQL 代码利用 LATERAL VIEW 语法,对 id_extra 中的 JSON 对象进行操作。
首先,使用 get_json_object(id_extra, '$.op0010') 获取 JSON 对象中名为 'op0010' 的属性值。
接着,使用 if(length(get_json_object(id_extra,'$.op0010'))=0,'0,0',) 进行条件判断:
- 如果 'op0010' 属性的长度为 0,则使用字符串 '0,0';
- 否则,保持原值不变。
然后,使用 split(if(length(get_json_object(id_extra,'$.op0010'))=0,'0,0',), ',') 将条件判断后的结果(字符串 '0,0' 或 'op0010' 属性值)以逗号为分隔符进行分割。
最后,使用 explode(split(if(length(get_json_object(id_extra,'$.op0010'))=0,'0,0',), ',')) te as chips_policy_openid1 将分割后的结果逐一展开,并命名为 chips_policy_openid1。
简单来说,这段 SQL 代码的功能是:如果 'op0010' 属性存在且长度不为 0,则将该属性值作为列值;否则,将 '0,0' 分割后的两个元素分别作为两列值。
原文地址: https://www.cveoy.top/t/topic/nalF 著作权归作者所有。请勿转载和采集!