【发布时间】:2017-08-04 02:50:00
【问题描述】:
所以我正在编写一个 BigQuery 查询,基本上只需要能够检查是否有任何字符串作为元素存在于表的一个列中,其中关心的列本身包含数组字符串。就上下文而言,我正在编写查询作为一个小的自动化 Python 作业的一部分,并且使用标准 SQL。
我在这里找不到任何可以明确检查数组包含的内容:https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators
所以我想出了一个使用非常老套的正则表达式的解决方案,具体来说:
...other query stuff...
WHERE
REGEXP_CONTAINS((LOWER(ARRAY_TO_STRING(column, '-'))), r"({joined_string})")
...其中column 是我在表中关心的列,joined_string 是一个长字符串,由我需要检查的所有字符串组成,并由| 连接(其中| 用作正则表达式 OR 运算符)。
BigQuery 标准 SQL 中是否存在某种内置功能,可以让人们更明智地执行此操作?
【问题讨论】:
-
请澄清 -
column是重复的字符串字段吗? -
@MikhailBerlyant 是的,如果不清楚,抱歉。
-
我已经猜到了 :o) - 请参阅下面的答案
标签: python google-bigquery google-cloud-platform bigquery-standard-sql