Как убрать поле bigquery, которое хранится в виде строки?

Вероятно, это не работает, потому что, как вы сказали, вы не используете элемент формы. Из jquery docs :

Событие отправки отправляется элементу, когда пользователь пытается отправить форму. Он может быть присоединен только к элементам формы

Вы можете использовать функцию, указанную вашим событием onclick onClick="newNet()", для проверки данных.

0
задан sam 18 January 2019 в 19:38
поделиться

1 ответ

Ниже приведено описание BigQuery Standard SQL

#standardSQL
WITH t AS (
  SELECT "1234" AS row_id, '{ "id" : "123" , "items" : [ { "quantity" : 1 , "product" : { "id" : "p1" , "categories" : [ "cat1","cat2","cat3"]  }}] }' AS parts 
)
SELECT row_id, REPLACE(_categories, '"', '') _categories
FROM t, UNNEST(SPLIT(REGEXP_EXTRACT(
  JSON_EXTRACT(parts, '$.items'), 
  r'"categories":\[(.+?)]'))
) _categories 

, которое дает ожидаемый результат

Row row_id  _categories  
1   1234    cat1     
2   1234    cat2     
3   1234    cat3      

Обновление

Выше решение было в основном сфокусировано на исправление регулярного выражения, используемого в экстракте - но не рассматривается более общий случай наличия нескольких продуктов. Ниже решение рассматривает такой более общий случай

#standardSQL
WITH t AS (
  SELECT "1234" AS row_id, '''{ "id" : "123" , "items" : [ 
      { "quantity" : 1 , "product" : { "id" : "p1" , "categories" : [ "cat1","cat2","cat3"]  }},
      { "quantity" : 2 , "product" : { "id" : "p2" , "categories" : [ "cat4","cat5","cat6"]  }}
    ] }''' AS parts 
)
SELECT row_id, REPLACE(category, '"', '') category
FROM t, UNNEST(REGEXP_EXTRACT_ALL(parts, r'"categories" : \[(.+?)]')) categories,
UNNEST(SPLIT(categories)) category  

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

Row row_id  category     
1   1234    cat1     
2   1234    cat2     
3   1234    cat3     
4   1234    cat4     
5   1234    cat5     
6   1234    cat6     
0
ответ дан Mikhail Berlyant 18 January 2019 в 19:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: