簡體   English   中英

如何在 AWS Athena 中獲取數組的切片?

[英]how to get slice of an array in AWS Athena?

我在 AWS Athena 中有一個長度未知的數組。 我想獲取第一個元素所期望的所有元素並連接成一個字符串。

我可以使用已知長度,但我不知道如何使用未知長度。 在這個例子中:

select this_arr, second, array_join(myslice, ' ') as myslice_joined
from
(select this_arr, element_at(this_arr, 2) as second, slice(this_arr, 2, 4) as myslice
from 
(select array ['one','two','three', 'four'] as this_arr));

在此處輸入圖像描述

我想要的是 myslice_joined。 我可以使用 slice 因為我知道它有四個元素,但如果它更多呢? Slice 不像其他地方那樣將 -1 作為最后一個元素。

您可以使用cardinality來確定數組長度:

select this_arr,
    second,
    array_join(myslice, ' ') as myslice_joined
from (
        select this_arr,
            element_at(this_arr, 2) as second,
            slice(this_arr, 2, cardinality(this_arr)) as myslice
        from (
                select array [ 'one', 'two', 'three', 'four' ] as this_arr
            )
    );

Output:

this_arr 第二 myslice_joined
[一二三四] 二三四

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM