У меня есть такой столбец в GBQ.
[{rank_start: 1, rank_end: 1, prize: {unit_type: 'UNIT_TYPE1', units: 50, unit_currency: 'UNIT_CURRENCY1'}}, {rank_start: 2, rank_end: 50, prize: {unit_type: 'UNIT_TYPE2', units: 20, unit_currency: 'UNIT_CURRENCY2'}}, {rank_start: 51, rank_end: 100, prize: {unit_type: 'UNIT_TYPE3', units: 10, unit_currency: 'UNIT_CURRENCY3'}}, {rank_start: 101, rank_end: 500, prize: {unit_type: 'UNIT_TYPE4', units: 5, unit_currency: 'UNIT_CURRENCY4'}}]
Я хочу извлечь значения, такие как rank_start, rank_end, unit_type, unit, unit_currency для каждого рангового диапазона в ГБК.
Я знаю, как это сделать, если у нас есть только один диапазон рангов, т. Е. С использованием JSON_EXTRACT () или JSON_EXTRACT_SCALAR () ... Я бы завершил его.
Но дело в том, что в JSON у нас больше, чем значение атрибута.
Кто-нибудь может помочь, как мы можем сделать это в GBQ?
Я пробовал грубый способ сделать это, то есть разделить запятыми несколько раз, а затем разделить с помощью ':', а затем заменить '' 'на' ', и я принимаю значения OFFSET при каждом разделении в соответствии с необходимостью ,
Но из-за этого код становится слишком неуклюжим, поскольку многие операции REPLACE & SPLIT выполняются и становятся неэффективными.
Я хотел бы посмотреть, есть ли возможность сделать это в GBQ, используя функции JSON, упомянутые выше ??
Заранее спасибо !!