Redshift - 根据模式提取数据
Posted
技术标签:
【中文标题】Redshift - 根据模式提取数据【英文标题】:Redshift - Extracting data based on pattern 【发布时间】:2020-06-16 10:17:28 【问题描述】:我正在尝试使用 Redshift 中的特定模式从以下文本中提取子字符串。
value
proda_cat1_subcat_a_jan2020
cat2_subcat_b_prodb_jan2020
我正在尝试从上述字符串中提取字符串cat1_subcat_a
和cat2_subcat_b
。
我尝试过regexp_substr(value,'cat[^_]')
,但这只会将字符串拉到第一个下划线
预期输出:
value, output
proda_cat1_subcat_a_jan2020, cat1_subcat_a
cat2_subcat_b_prodb_jan2020, cat2_subcat_b
【问题讨论】:
【参考方案1】:尝试使用以下正则表达式模式:
cat[0-9]+_[^_]+_[^_]+
SQL 查询:
SELECT
value,
REGEXP_SUBSTR(value, 'cat[0-9]+_[^_]+_[^_]+') AS output
FROM yourTable;
Demo
演示在 Oracle 中,但语法应该也适用于 Redshift。
【讨论】:
我正在等待它让我接受答案。肯定会在接下来的 10 分钟内完成..以上是关于Redshift - 根据模式提取数据的主要内容,如果未能解决你的问题,请参考以下文章
如何在架构上同步应用程序工程师 (Postgres) 和数据工程师 (Redshift)
GCP BigQuery 数据传输服务中的错误:找不到适合 jdbc:redshift:// 的驱动程序