雪花子字符串问题

问题描述 投票:0回答:1

我有像下面这样的字符串输入选择查询

/partition_date=20240101/part-0001.parquet
/partition_id=20240301/file.name.parquet
/year=2023/month=1/file2.name.parquest
/year=2024/month=2/part-0001.parquet

需要解析字符串以给出仅输出的分区信息。

预期产出

partition_date=20240101
partition_id=20240301
year=2023/month=1
year=2024/month=2

有人可以分享如何使用 split、split_part、regexp_substr 实现它的输入。查询应该适用于上述任何格式。

提前致谢

snowflake-cloud-data-platform snowflake-schema
1个回答
0
投票
with t(val) as (
        select *
        from values
            ('/partition_date=20240101/part-0001.parquet'),
            ('/partition_id=20240301/file.name.parquet'),
            ('/year=2023/month=1/file2.name.parquest'),
            ('/year=2024/month=2/part-0001.parquet)')
    )
select
    array_to_string(
        filter(
            strtok_to_array(val, '/'),
            a -> (
                contains(a, 'partition')
                or contains(a, 'year')
                or contains(a, 'month')
            )
        ),
        '/'
    ) as a
from
    t;
A
分区日期=20240101
partition_id=20240301
年=2023/月=1
年=2024/月=2
© www.soinside.com 2019 - 2024. All rights reserved.