SnowFlake - Как убежать от персонажа при боковом сглаживании? - PullRequest
0 голосов
/ 31 марта 2020

В настоящее время я выполняю шаг 2 этого урока из Snowflake, но использую свой собственный JSON, хранящийся в столбце, который я буду называть my_column в таблице my_table:

https://docs.snowflake.com/en/user-guide/json-basics-tutorial-query.html

Используемый мной файл JSON имеет ключ, который содержит символ '@'.

Пример:

"@characteristics": {
    "XXX": "XXXX",
    "YYY": "YYYY",
    "ZZZ": "ZZZZ"
    }

Когда я пытаюсь использовать инструкцию SELECT, включающую функцию FLATTEN, ie что-то вроде этого

select
  value:xxx::number
  from
    my_table
  , lateral flatten( input => my_column:@characteristics);

Когда я пытаюсь это сделать, SnowFlake выдает мне ошибку 'SQL ошибка компиляции: строка синтаксической ошибки 3 в позиции 57 неожиданного' @characteristics '.' Я пытался избежать символа '@' перед атрибутами, но мне не повезло.

1 Ответ

0 голосов
/ 31 марта 2020

Вам нужно использовать двойные кавычки. Попробуйте это:

create table my_table ( my_column variant ) as 
select parse_json ( $$ { "@characteristics": {
"XXX": "XXXX",
"YYY": "YYYY",
"ZZZ": "ZZZZ"
}} $$ );

select
value
from my_table
,lateral flatten( input => my_column:"@characteristics");
...