Как выбрать определенную пару ключ / значение из поля json в таблице SQL в SNOWFLAKE - PullRequest
0 голосов
/ 09 апреля 2020

В настоящее время я работаю над созданием информационного дома в снежинке для бизнеса, в котором я работаю, и у меня возникли некоторые проблемы. Раньше я применял функцию Json_value в T SQL для извлечения определенной пары ключ / значение из поля формата json внутри моего исходного MS SQL DB.

Все остальные поля находятся в обычном SQL формат, но есть одно поле, которое мне действительно нужно, и оно отформатировано в JSON, и я не могу точно определить ту пару ключ / значение, которая мне нужна.

Я новичок в Snow SQL и я не могу найти способ извлечь это из обычного запроса. Кто-нибудь знает способ обойти мою проблему?

* ID /// ТИП /// Имя (JSON_FORMAT) /// Сумма *

  1          5         {En: "lunch, fr: "diner"}        10.00

Я хотел бы извлечь эту строку (для примера) и иметь возможность только извлечь EN: часть "обеда" из моего поля формата JSON.

Спасибо!

1 Ответ

3 голосов
/ 09 апреля 2020

Почти каждый раз, когда вы используете JSON в Snowflake, рекомендуется использовать тип данных VARIANT. Вы можете использовать функцию parse_ json для преобразования строки в вариант с JSON.

select 
parse_json('{En: "lunch", fr: "diner"}') as VARIANT_COLUMN,
VARIANT_COLUMN:En::string as ENGLISH_WORD;

В этом примере первый столбец преобразует ваш JSON в вариант с именем VARIANT_COLUMN. Во втором столбце используется вариант, извлекающий свойство «En» и приводящий его к строковому типу данных.

Вы можете определить столбцы как вариант и сохранить JSON изначально. Это позволит повысить производительность и разрешить синтаксический анализ с использованием точечной нотации в SQL.

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