Как получить точную фразу, за которой следует определенное слово в json bigquery

#json #google-bigquery

#json #google-bigquery

Вопрос:

У меня есть такой столбец с именем X, и мне нужно получить фазу после слова «name»

Вот пример одной строки типа json:

{"id":"5df8c913e069a09e0467179e","name":"Contacts in description","vote":"REFUSE","notice":{"text":"Contacts or URLs in description are not allowed on JamesEdition","severity":"PROBLEM"},"wordHighlighting":[{"words":[{"word":"yes","regex":"/^yes$/"}],"variableName":"$text.hasUrl"}]}

Итак, результат, который мне нужен в этом случае: Contacts in description также иногда name в одной строке их несколько: мне нужно захватить их все

Большое спасибо за внимание!

Комментарии:

1. вы упомянули «иногда в одной строке есть несколько имен: мне нужно захватить их все» — приведите пример и ожидаемый результат!

2. @MikhailBerlyant большое спасибо за ваш комментарий! Я бы хотел, чтобы у двух было два (или более) отдельных столбца с фразами «после»имени»»

3. вы должны обновить свой вопрос хорошим примером ввода и ожидаемого результата!!!

Ответ №1:

Попробуйте JSON_EXTRACT:

 SELECT JSON_EXTRACT('{"id":"5df8c913e069a09e0467179e","name":"Contacts in description","vote":"REFUSE","notice":{"text":"Contacts or URLs in description are not allowed on JamesEdition","severity":"PROBLEM"},"wordHighlighting":[{"words":[{"word":"yes","regex":"/^yes$/"}],"variableName":"$text.hasUrl"}]}', '$.name')
 

введите описание изображения здесь