Синтаксический анализ строки с использованием BigQuery формата «121,131,111 = 1600» для isntance

#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 соответственно. согласны?