【发布时间】:2021-06-20 18:52:22
【问题描述】:
背景
我正在使用 SQL 在 Amazon Redshift 数据库中工作。我有一个表,其中一个名为 attributes 的列包含如下所示的数据:
[{"name": "Color", "value": "Beige"},{"name":"Size", "value":Small"}]
或
[{"name": "Size", "value": "Small"},{"name": "Color", "value": "Blue"},{"name": "Material", "value": "Cotton"}]
据我了解,以上是JSON字符串中的一系列路径元素。
问题
我希望提取每个 JSON 字符串中的颜色值。我不确定如何进行。我知道如果颜色在同一个位置,我可以使用索引来指示从哪里提取。但这里不是这样。
我尝试了什么
select json_extract_array_element_text(attributes, 1) as color_value, json_extract_path_text(color_value, 'value') as color from my_table
此查询适用于某些列,但并非所有列,因为颜色值的位置不同。
我很感激这里的任何帮助,因为我对 sql 非常陌生,并且只进行了基本的查询。我一直使用以下page作为参考
【问题讨论】:
-
您正在突破 SQL 的极限。你会考虑Creating a scalar Python UDF - Amazon Redshift提取信息吗?
标签: sql amazon-web-services amazon-redshift