2

我现在尝试学习 SQL 和 Regex 来分析谷歌数据工作室中的数据。我试图找到解决问题的方法,但在网上找不到任何解决方案。我有一个带有搜索查询的数据源,我想将所有包含公司名称的查询标记为“品牌”。这部分很简单。我刚刚写了以下内容来完成它:

case
when REGEXP_MATCH(Query, '.*flnk.*') THEN 'Branded'
ELSE 'Non-branded'
END

但现在我还想将所有包含公司名称但拼写错误的搜索查询标记为“品牌”。所以我尝试了以下方法:

case
when REGEXP_MATCH(Query, '^[f].*[k]$') THEN 'Branded'
ELSE 'Non-branded'
END

但是使用这段代码,我得到了很多错误的标记查询,因为它标记了所有以 f 开头并以 k 结尾的字符串。所以我的问题是我怎样才能只将以f开头并以k结尾的词标记为品牌?

非常感谢您!

4

1 回答 1

1

你可以考虑使用

case
when REGEXP_MATCH(Query, r'.*\bf[a-zA-Z]*k\b.*') THEN 'Branded'
ELSE 'Non-branded'
END

模式.*\bf[a-zA-Z]*k\b.*匹配

  • .*- 任何文字
  • \b- 单词边界
  • f-f
  • [a-zA-Z]*- 零个或多个字母
  • k-k一封信
  • \b- 单词边界
  • .*- 任何文字
于 2021-11-18T09:48:29.077 回答