Описанная JSON имеет простую структуру, похожую на траекторию, с объектами на разных уровнях (и без массивов).
За Документация полуструктурированных данных Snowflake , используйте точечную запись чтобы извлечь значение по (плоско вложенному) пути:
Insert a colon : between the VARIANT column name
and any first-level element: <column>:<level1_element>.
Use dot notation to traverse a path in a JSON object:
<column>:<level1_element>.<level2_element>.<level3_element>.
Примером может быть (обратите внимание на использование точек в третьей и четвертой строках):
SELECT
badminton_odds:Id as id,
badminton_odds:PricingRequest.MatchStatus as match_status,
badminton_odds:PricingRequest.Variables.Dispersion as var_dispersion
FROM odds_table
You не требуется FLATTEN для простого извлечения единственного значения. Используйте FLATTEN, когда вам нужно разбить некоторые рядные данные на несколько строк (например, в случае массивов).
Например, если описанный JSON в вопросе о том, как выглядит один элемент массива длинный массив таких объектов, вы можете использовать FLATTEN, чтобы сначала разбить весь массив на строки, а затем применить извлечение стиля пути, чтобы извлечь значение из каждой строки.