【问题标题】:Redshift - Extracting data based on patternRedshift - 根据模式提取数据
【发布时间】:2020-06-16 10:17:28
【问题描述】:

我正在尝试使用 Redshift 中的特定模式从以下文本中提取子字符串。

value
proda_cat1_subcat_a_jan2020
cat2_subcat_b_prodb_jan2020

我正在尝试从上述字符串中提取字符串cat1_subcat_acat2_subcat_b

我尝试过regexp_substr(value,'cat[^_]'),但这只会将字符串拉到第一个下划线

预期输出:

value, output
proda_cat1_subcat_a_jan2020, cat1_subcat_a
cat2_subcat_b_prodb_jan2020, cat2_subcat_b

【问题讨论】:

    标签: regex amazon-redshift


    【解决方案1】:

    尝试使用以下正则表达式模式:

    cat[0-9]+_[^_]+_[^_]+
    

    SQL 查询:

    SELECT
        value,
        REGEXP_SUBSTR(value, 'cat[0-9]+_[^_]+_[^_]+') AS output
    FROM yourTable;
    

    Demo

    演示在 Oracle 中,但语法应该也适用于 Redshift。

    【讨论】:

    • 我正在等待它让我接受答案。肯定会在接下来的 10 分钟内完成..
    猜你喜欢
    • 1970-01-01
    • 2022-08-24
    • 2018-01-14
    • 2013-06-17
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    相关资源
    最近更新 更多