Вы можете использовать некоторые из JQ-функций BQ, как описано здесь .
Исходя из этого, вы можете найти param2 и проверить, соответствует ли его значение тому, что вы ищете.Если вы не уверены в порядке конфигурации, вы можете перебрать массив, чтобы найти param2, но это не особенно эффективно.Я рекомендую вам попытаться найти способ, где param2 всегда является вторым полем в массиве.Я смог получить правильные результаты, например, так:
SELECT json_text AS correct_configurations
FROM UNNEST([
'{"configuration":[{"param1":"value1"},{"param2":[3.0,45]}]}',
'{"configuration":[{"param1":"value2"},{"param2":[3.0,45]}]}',
'{"configuration":[{"param1":"value1"},{"param2":[3.0,36]}]}',
'{"configuration":[{"param1":"value1"},{"param2":[3.0,46]}]}',
'{"configuration":[{"param1":"value1"},{"param2":[3.0,30]}]}',
'{"configuration":[{"param1":"value1"}]}'
])
AS json_text
WHERE JSON_EXTRACT(json_text, '$.configuration[1].param2') LIKE "[3.0,45]";
Дает результат:
Row | correct_configurations
1 | {"configuration":[{"param1":"value1"},{"param2":[3.0,45]}]}
2 | {"configuration":[{"param1":"value2"},{"param2":[3.0,45]}]}