#google-bigquery
#google-bigquery
Вопрос:
У меня есть поле в BigQuery, которое имеет такие значения
«1,121,131,215=121»
«1,16,17,18,19,20,20,31,1411=215»
Я должен извлечь значение, которое является ключевым значением для 215 — в первом случае это 121, во втором случае это 1411
Ищете решение, чтобы сделать это в BQ, очень ценю всю помощь!
Спасибо!
Комментарии:
1. логика не ясна — пожалуйста, уточните и, возможно, добавьте еще несколько примеров
Ответ №1:
Если то, что вы пытаетесь сделать, это найти последнее число раньше =
, вот что вы могли бы сделать:
CREATE TEMP FUNCTION getLastElement(arr ARRAY<STRING>)
AS (arr[OFFSET(ARRAY_LENGTH(arr)-1)]);
WITH data AS (SELECT "1,121,131,215=121" s
UNION ALL SELECT "1,16,17,18,19,20,20,31,1411=215")
SELECT getLastElement(split(split(s, '=')[OFFSET(0)], ','))
FROM data;
Комментарии:
1. если бы это было так — ожидаемый результат был бы 215 и 1411, но OP ищет 121 и 1411 соответственно. согласны?