Как использовать Regex с JSON_EXTRACT на большом запросе -- sql поле с участием regex поле с участием google-bigquery пол Связанный проблема

How to use regex with JSON_EXTRACT on big query


2
vote

проблема

русский

У меня есть поле JSON на большом настольном запросе и в настоящее время я использую следующий метод, чтобы сделать извлечение из элемента ID (например):

 <код> coalesce(    nullif(JSON_EXTRACT(e.event_payload, 'content_id'), ''),    nullif(JSON_EXTRACT(e.event_payload, 'cid'), ''),    nullif(JSON_EXTRACT(e.event_payload, 'c_id'), ''),    ...   ) AS content_id,   

У меня нет шаблона на этих полях JSON ... возможно использовать Regex с JSON_EXTRACT на большом запросе, как это?

 <код> JSON_EXTRACT(e.event_payload, "(content_id|cid|c_id)") as content_id   
Английский оригинал

I have a JSON field on big query table and currently i'm using the following method to do the extraction from a id element (for example):

coalesce(    nullif(JSON_EXTRACT(e.event_payload, 'content_id'), ''),    nullif(JSON_EXTRACT(e.event_payload, 'cid'), ''),    nullif(JSON_EXTRACT(e.event_payload, 'c_id'), ''),    ...   ) AS content_id, 

I don't have a pattern on this JSON's fields... Is possible use REGEX with JSON_EXTRACT on big query like this?

JSON_EXTRACT(e.event_payload, "(content_id|cid|c_id)") as content_id 
</div
        
   
   

Список ответов

3
 
vote

Вы можете заменить возможные имена поля, а затем выполнить экстракцию:

 <код> SELECT   JSON_EXTRACT(     REGEXP_REPLACE(e.event_payload, r'"c_?id"', '"content_id"'),     '$.content_id') as content_id FROM dataset.table   

как автономный пример:

 <код> WITH T AS (   SELECT '{"cid": {"a": 1}}' AS event_payload UNION ALL   SELECT '{"content_id": {"b": 2}}' UNION ALL   SELECT '{"c_id": {"c": 3}}' ) SELECT   JSON_EXTRACT(     REGEXP_REPLACE(e.event_payload, r'"c_?id"', '"content_id"'),     '$.content_id') as content_id FROM T AS e   
 

You can replace the possible field names and then perform extraction:

SELECT   JSON_EXTRACT(     REGEXP_REPLACE(e.event_payload, r'"c_?id"', '"content_id"'),     '$.content_id') as content_id FROM dataset.table 

As a self-contained example:

WITH T AS (   SELECT '{"cid": {"a": 1}}' AS event_payload UNION ALL   SELECT '{"content_id": {"b": 2}}' UNION ALL   SELECT '{"c_id": {"c": 3}}' ) SELECT   JSON_EXTRACT(     REGEXP_REPLACE(e.event_payload, r'"c_?id"', '"content_id"'),     '$.content_id') as content_id FROM T AS e 
</div
 
 

Связанный проблема

0  Сервер SQL Server Rowing Rows Mathet - без «заказа»  ( Sql server paging rows by offset without order by ) 
Производственный стол мой содержит более миллиона записей. Требование требует для поискового запроса для извлечения записей по смещению и предельным параметра...

98  Подключение к серверу Microsoft SQL с помощью Python  ( Connecting to microsoft sql server using python ) 
<Р> Я пытаюсь подключиться к SQL через питон для запуска некоторых запросов на некоторых базах данных SQL на сервере Microsoft SQL. Из моих исследований в Инте...

3  Выбор таблицы свойств как столбцы  ( Selecting table of properties as columns ) 
У меня есть две таблицы, <код> things и <код> properties : <код> CREATE TABLE things ( id SERIAL PRIMARY KEY ); CREATE TABLE properties ( thing_id INT...

0  SQL Server - получить столбец, у которого есть конкретное значение  ( Sql server get column who have specific value ) 
У меня есть запрос SQL, который возвращает: <код> id | value 1 a 1 a 1 b 2 a 2 a Я хочу получить только...

0  SQL-запрос слишком долго  ( Sql query taking too long ) 
У меня есть простая «вставка в ..». Запрос, который принимает около 40 секунд для выполнения. Он просто принимает записи из одной таблицы и вставляет в другую...

1  Почему не будет DB2 позвольте мне иметь столбец в том случае?  ( Why wouldnt db2 let me have a column in where clause ) 
У меня есть удаленная база данных DB2, которую я получаю через ODBC. Когда у меня есть запрос, как <код> SELECT t.foo, t.bar, t.problemcolumn FROM problemta...

1  Настройте SQL PolyBase для доступа к внешним данным в MongoDB - проблема  ( Configure sql polybase to access external data in mongodb problem ) 
Я пытаюсь подключить SQL Server с помощью полибазы с MongoDB, но я не в состоянии создать внешний источник данных для этого. Пожалуйста, помогите ... Я испо...

0  Что такое мой пропавший оператор в моем выражении запроса?  ( What is my missing operator in my query expression ) 
First Off, я очень новый с доступом, так что извиняюсь, если это супер базовый, но я бегу в проблему с моим запросом, и я не знаю, в чем проблема. Вот мой код...

0  Конвертировать стол в другой формат в MSSQL  ( Convert table to another format in mssql ) 
Я сталкиваюсь с проблемой с MS-SQL в получении вывода из таблицы в определенном формате. . Имя |. StringValue |. Parent_id. Полевое имя |. Testheader1 |. 3. ...

2  Условная сумма на основе даты (сверхурочная сумма по контракту)  ( Conditional sum based on date sum overtime by contract ) 
У меня есть стол с <Код> ID (Commonse_id), <код> Name , <код> time_worked , <код> time_to_work , <код> Contract_Start_Date , <код> Date_of_Entry . Эта таблиц...

18  Функция isnull в db2 sql?  ( Isnull function in db2 sql ) 
Есть ли исполнительное, эквивалентное isnull функции для db2? Представьте себе, что некоторые из наших продуктов являются внутренними, поэтому у них нет име...

0  Вставка в Oracle последовательно  ( Are insert in oracle sequential ) 
У меня есть стол в Oracle. Я создаю несколько пакетных заданий. Каждая пакетная задача вставила некоторое количество записей в таблице. Я хотел узнать, буду...

1  Сумма количества членом  ( Sum of quantities by member ) 
Наличие некоторых проблем в операторе SQL для WordPress. Создан пользовательское поле «Member_Name», который проходит в порядке3 под ключ = Member_Name. Мне н...

1  Как я могу выбрать, используя пересечение стоимости разделенного запятой?  ( How can i select using an intersection of comma separated value ) 
У меня есть столбец, удерживает значения, разделенные запятыми. <код> 1,2,3 4,6,7 2,3,8 12234,5467,232445,232455,11223 с заданными критериями массива (н...

0  Значение цитаты в Zend Framework 2  ( Quote value into zend framework 2 ) 
Я работаю над приложением, используя ZF2. В моем приложении я должен вставить много строк в базу данных (около 900). У меня есть таблица модель для этого, п...