我想使用SQL从Snowflake中包含JSON的一列值创建两列。
假设此表名为keywords_bids,则有一个名为keywords的列,其中包含JSON
在keywords列中的单元格中的示例json:
row1:**{“apple”:0.1,“peach”:0.2,“banana”:0.1}**row2:类似的JSON等等。
input image我想创建一个名为keyword的列,它是从JSON输出的出价价格将是:
关键字|Bid
'苹果'| 0.1
‘桃子’|0.2
'banana'| 0.3
3条答案
按热度按时间3pvhb19x1#
首先,对于JSON,您需要将单引号更改为双引号。
然后你只需要将json扁平化来获得键和值:
zsohkypk2#
https://community.snowflake.com/s/article/Dynamically-extracting-JSON-using-LATERAL-FLATTEN
本文将演示使用LATERAL FLATTEN从JSON文档中提取信息的各种示例。提供了与GET_PATH、UNPIVOT和SEQ函数一起使用的示例。
6jygbczu3#
在snowflake中从JSON中获取值的简单方法是例如:表:ABC列:Json_column包含JSON内容,如“carriers”:[ {“代号”:“AAAA”,“flightNumber”:“类型”,“类型”:“操作”},{“代码”:“BBBB”,“flightNumber”:“YYYY”,“type”:“市场营销”} ]
SELECT Json_column:carriers[0].code::varchar AS first_child,Json_column:carriers[1].code::varchar AS first_childFROM ABC;
SQL结果为AAAA、BBBB
因为数据在数组中,我们使用[0]和[1]来获取JSON的值。我希望它能帮助你