zoukankan      html  css  js  c++  java
  • MaxCompute将json数组拆分成多行

    select
         GET_JSON_OBJECT(name_tmp,'$.val')      as val
        ,GET_JSON_OBJECT(name_tmp,'$.area')     as area
        ,GET_JSON_OBJECT(name_tmp,'$.setVal')   as setVal
        ,GET_JSON_OBJECT(name_tmp,'$.isExceed') as isExceed
    from (
        -- 删除前后的中括号并修改分隔符
        select 
            regexp_replace(regexp_replace(regexp_replace(json_str,'^\[',''),'\]$',''),'},\{','}|{') as json_str1
        from (
            select '[{"val":5,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":7,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":7,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":1,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":5,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":7,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":5,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":6,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":5,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":5,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":5,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""},{"val":6,"area":"测区1","setVal":"","isExceed":false,"isQualified":true,"x":"","y":""}]' as json_str
        ) t1
    ) t2
    lateral view explode(split(json_str1,'\|')) b AS name_tmp
    ;
    
    +------------+------------+------------+------------+
    | val        | area       | setval     | isexceed   | 
    +------------+------------+------------+------------+
    | 5          | 测区1        |            | false      | 
    | 7          | 测区1        |            | false      | 
    | 7          | 测区1        |            | false      | 
    | 1          | 测区1        |            | false      | 
    | 5          | 测区1        |            | false      | 
    | 7          | 测区1        |            | false      | 
    | 5          | 测区1        |            | false      | 
    | 6          | 测区1        |            | false      | 
    | 5          | 测区1        |            | false      | 
    | 5          | 测区1        |            | false      | 
    | 5          | 测区1        |            | false      | 
    | 6          | 测区1        |            | false      | 
    +------------+------------+------------+------------+
  • 相关阅读:
    修改游标所在的表
    PL/SQL开发中动态SQL的使用方法
    索引学习笔记
    动态SQL和PL/SQL的EXECUTE选项分析
    PL/SQL正确选择游标类型
    oracle字符集
    ext框架下,实现弹出新窗口
    student guide
    plsql与.net异常处理
    ASP.NET 2.0 XML 系列(1): XML介绍
  • 原文地址:https://www.cnblogs.com/chenzechao/p/12915747.html
Copyright © 2011-2022 走看看