小编Jos*_*nas的帖子

文字压平 NULL 对象或数组

我正在尝试展平表的一列中包含的 JSON 对象,该列有一个可选字段。

-- row 1
{
    "key1": "value1",
    "key2": {
        "key3": [1, 2, 3]
    }
    
}
-- row 2
{
    "key1": "value1x"
}
Run Code Online (Sandbox Code Playgroud)

从上面的示例中,我们假设该表来自表“X”和列“A”我要选择的查询:

SELECT
   x.id, -- another column in table X
   key3
FROM X AS x,
LATERAL FLATTEN(A.key2.key3) AS key3
Run Code Online (Sandbox Code Playgroud)

结果表:

id  |  key3
___________
 1  |   1
 1  |   2
 1  |   3
Run Code Online (Sandbox Code Playgroud)

我想要实现的目标:

id  |  key3
___________
 1  |   1
 1  |   2
 1  |   3
 2  |   NULL
Run Code Online (Sandbox Code Playgroud)

有什么想法如何做到这一点?一个想法是UNION对于所有的NULL对象有没有更好的方法?

snowflake-cloud-data-platform

2
推荐指数
1
解决办法
2735
查看次数