这是从另一个线程的例子,但本质上我想实现这一点:
样本数据
ID Name Value
1 TV1 {"URL": "www.url.com", "Icon": "some_icon"}
2 TV2 {"URL": "www.url.com", "Icon": "some_icon", "Facebook": "Facebook_URL"}
3 TV3 {"URL": "www.url.com", "Icon": "some_icon", "Twitter": "Twitter_URL"}
..........
字符串
预期产出
ID Name URL Icon Facebook Twitter
1 TV1 www.url.com some_icon NULL NULL
2 TV2 www.url.com some_icon Facebook_URL NULL
3 TV3 www.url.com some_icon NULL Twitter_URL
型
我对Snowflake完全陌生,所以我对如何轻松地做到这一点感到困惑(希望是自动的,在某些行可能比其他行有更多的json元素的情况下,手动分配会很繁琐)。
我找到了Snowflake的parse_json
函数,但它只是在新列中提供了相同的json列,仍然是json格式。
TIA!
3条答案
按热度按时间inkz8wg91#
您可以使用以下SELECT命令在表上创建视图:
字符串
除非您将其他属性添加到视图中,否则将忽略这些属性。没有办法“自动”将它们包含到视图中,但您可以创建一个存储过程,根据表的完整变量内容中的所有属性动态生成视图。
7lrncoxx2#
您可以创建一个SP,根据VARIANT中的JSON数据自动为您构建CREATE VIEW。
下面是一些简单的例子:
字符串
执行SP将返回以下字符串:
型
然后查询视图:
型
查询源表:
型
您可以优化此SP以检测嵌套数据并将其添加到列列表中。
ruarlubt3#
我得到了一个
Invalid argument types for function 'GET'...
错误与类似的数据。所以我不得不使用 snowflakePARSE_JSON
函数如下:字符串