Jos*_*nas 2 snowflake-cloud-data-platform
我正在尝试展平表的一列中包含的 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对象有没有更好的方法?
要获取不存在的值,可以应用OUTER选项:
外
如果为 TRUE,则为零行扩展生成一行(KEY、INDEX 和 VALUE 列中为 NULL)。
SELECT
x.id, -- another column in table X
key3
FROM X AS x,
LATERAL FLATTEN(INPUTY => A.key2.key3,OUTER => TRUE) AS key3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2735 次 |
| 最近记录: |