Согласно документации, здесь , оператор LIKE работает следующим образом:
Проверяет, соответствует ли STRING в первом операнде X шаблону определяется вторым операндом Y. Выражения могут содержать следующие символы:
Знак процента "%" соответствует любому количеству символов или байтов.
Знак подчеркивания "_" соответствует одному символу или байту .
Вы можете экранировать "\", "_" или "%", используя две обратные косые черты. Например, "\%". Если вы используете необработанные строки, требуется только одна обратная косая черта sh. Например, r "\%".
Таким образом, синтаксис будет выглядеть следующим образом:
SELECT
order_id,
transaction_uuid,
client_name
FROM
transactions_table
WHERE
JSON_VALUE(transactions_table,
'$.ordernum') LIKE '%ORD12345%'
OR JSON_VALUE(transactions_table,
'$.ordernum') LIKE '%ORD54376%
Обратите внимание, что мы указываем два условия, связанные с ИЛИ логический оператор.
В качестве дополнительной информации при запросе больших наборов данных целесообразно выбирать только те столбцы, которые вы хотите использовать в выходных данных (либо в таблице временных параметров, либо в окончательном представлении) вместо использования *, поскольку BigQuery является столбцовым, одна из причин его ускорения.
В качестве альтернативы для использования LIKE , вы можете использовать REGEXP_CONTAINS , согласно документации:
Возвращает TRUE, если значение является частичным совпадением для регулярного выражения, регулярное выражение.
Использование следующего синтаксиса:
REGEXP_CONTAINS(value, regex)
Однако это также будет работать, если вместо выражения регулярного выражения вы используете STRING между одинарными / двойными кавычками , Кроме того, вы можете использовать оператор канала (|), чтобы разрешить логически упорядочивать искомые компоненты, когда у вас есть больше, чем выражение для поиска, следующим образом:
where regexp_contains(email,"gary|test")
Надеюсь, если поможет.