ВОПРОС SNOWFLAKE: передача столбца в SELECT в качестве аргумента, но не возвращение ожидаемого результата - PullRequest
0 голосов
/ 07 августа 2020

В Snowflake я пытаюсь получить 2 столбца в запросе выбора, но передаю имя одного столбца в качестве аргумента. Вместо того, чтобы возвращать "VALUE" из данных для второго столбца, он фактически возвращает мне значение для аргумента, который я передаю извне.

SNIPPET:

set col='NAME';

SELECT ID, $col from TABLE;

ФАКТИЧЕСКИЙ РЕЗУЛЬТАТ:

ID  $col
123 NAME

ОЖИДАЕМЫЙ РЕЗУЛЬТАТ:

ID  $col
123 Mr. X

1 Ответ

5 голосов
/ 07 августа 2020

Snowflake обрабатывает переменные как строки, а не как имена объектов. Для этого вам понадобится функция IDENTIFIER (). Попробуйте что-то вроде этого:

set col='NAME';

SELECT ID, IDENTIFIER($col) from TABLE;

В документации есть несколько примеров с объяснением здесь: https://docs.snowflake.com/en/sql-reference/session-variables.html#using -variables-in- sql

...