Проблемы с зарезервированным именем поля 'user' в SAS Pro c SQL - PullRequest
3 голосов
/ 04 марта 2020

Как мне выбрать столбец user в моей таблице и не выбирать «функцию» сюрприза, добавленную в их синтаксис SQL:

data have;
 user = 'huh??';
run;

proc sql ;
  select user from have;
quit;

Результат:

rob

Бонус, имя поля в таблице результатов (если вы его создаете) получает временное имя ... ie. что-то вроде _TEM001.

Ответы [ 2 ]

3 голосов
/ 04 марта 2020

Используйте синтаксис литерала имени, '<name>'n

select 'user'n from have;

Литералы имени в других системах, например, при проходе:

  • Oracle - в двойных кавычках. "user"
  • SQL Сервер - в квадратных скобках [user]
2 голосов
/ 04 марта 2020

Вы можете использовать литералы столбцов, чтобы обращаться именно к имени поля, а не к зарезервированному ключевому слову:

proc sql ;
  select 'user'n from have;
quit;

Результат:

huh??
...