在 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)不起作用

Redshift 正则表达式错误?

正则表达式:获取 AWS Redshift 中两个字符串之间的值

在 SQL (Amazon Redshift) 中使用正则表达式提取标签

正则表达式在 Redshift 中将 CamelCase 转换为蛇形案例