我的数据库有一列包含如下 JSON 数组:
[
{
name: 'foo'
},
{
name: 'bar'
},
{
name: 'test'
}
]
如何从数组中的最后一个元素中选择
name
属性?
我可以轻松选择第一个元素:
json_extract_scalar(my_column, '$[0].name')
这些尝试对最后一个元素不起作用:
json_extract_scalar(my_column, '$[-1].name')
json_extract_scalar(my_column, '$[cardinality(json_parse(my_column)) - 1].name')
注意:我无法对 JSON 数组的长度做出任何假设。
你可以这样做:
SELECT element_at(my_column, -1)
FROM your_table_name;
更多信息:
https://docs.aws.amazon.com/athena/latest/ug/accessing-array-elements.html