почему это важно.
я пишу запрос 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).
Существует ли какая-то встроенная функциональность в стандартном SQL BigQuery, которая позволяет делать это более разумно?