Извлечение текста следующих периодов в качестве разделителя конкретной позиции - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь извлечь текст, разделенный точками. Я немного озадачен попытками слишком долго и надеюсь, что кто-то может помочь!

В двух словах, следующая строка (одна строка) является примером результата запроса из столбца (например, содержимого).

Пример строки:

Some random text ........................... True
But really something ....................... Okay
Okay, just another test .................... 2010-04 is a good day

Я пытаюсь добавить некоторые операторы в часть запроса SELECT, чтобы извлечь данные из контента в этом примере. Все строки в БД имеют одинаковое содержимое, только с разными «значениями» (True, Okay, 2010 ...).

Пример результата:

Col-Random     | Col2-Something  | Col3-Okay
---------------+-----------------+-------------------------
True           | Okay            | 2010-04 is a good day

Я пробовал следующие варианты:

SELECT
regexp_extract(SUMMARY, r'/.*Some random text.*/g') as Col-Random
....
FROM `table`

1 Ответ

0 голосов
/ 14 ноября 2018

... пытается извлечь текст, разделенный точками

Ниже приведен пример для BigQuery Standard SQL

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 'Some random text ........................... True' line         UNION ALL
  SELECT 'But really something ....................... Okay'              UNION ALL
  SELECT 'Okay, just another test .................... 2010-04 is a good day' 
)
SELECT 
  SPLIT(line, REGEXP_EXTRACT(line, r'(\.{3}[\.]+)'))[SAFE_OFFSET(0)] key,
  SPLIT(line, REGEXP_EXTRACT(line, r'(\.{3}[\.]+)'))[SAFE_OFFSET(1)] value       
FROM `project.dataset.table`   

с результатом

Row key                         value    
1   Some random text            True     
2   But really something        Okay     
3   Okay, just another test     2010-04 is a good day    

Примечание: выше предполагается, что минимальное количество из 4 периодов квалифицируется как разделитель

Итак, если у вас есть строка как Some ... random text ........................... True - она ​​все равно будет правильно обработана до

key                     value    
Some ... random text    True     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...