在 redshift 中使用正则表达式和 casestatements 语句
Posted
技术标签:
【中文标题】在 redshift 中使用正则表达式和 casestatements 语句【英文标题】:using regex and casestatements statements in redshift 【发布时间】:2019-09-23 20:14:39 【问题描述】:您好,我一直在将查询从 bigquery 迁移到 redshift。我需要使用 reg ex 语句创建一个 case 语句。 Redshift 似乎不支持相同的 regex_contains 语句——如何在 redshift 中使用正则表达式?
在 bigquery 中我遵循这个语法
CASE
WHEN REGEXP_CONTAINS (Campaign, '.*(?i)name.*') THEN 'brand' WHEN
REGEXP_CONTAINS (Campaign, '.*(?i)namee.*') THEN 'brand'
ELSE 'Other'
END AS BRAND
CASE
WHEN campaign REGEXP_REPLACE '.*(?i)name.*' THEN 'brand'
WHEN campaign REGEXP_REPLACE'.*(?i)campaign.*' THEN 'brand'
ELSE 'OTHER'
End AS BRAND
我一直在尝试遵循 redshifts 正则表达式,但似乎没有任何东西可以创建相同的输出。
【问题讨论】:
【参考方案1】:您正在寻找 REGEXP_INSTR 函数。 https://docs.aws.amazon.com/redshift/latest/dg/REGEXP_INSTR.html
【讨论】:
以上是关于在 redshift 中使用正则表达式和 casestatements 语句的主要内容,如果未能解决你的问题,请参考以下文章
在 Redshift 中使用正则表达式来获取匹配模式之前的单词
Redshift / 正则表达式(Positive Lookbehind 和 Positive Lookahead)不起作用
正则表达式:获取 AWS Redshift 中两个字符串之间的值