sas sql переход к макропеременной как символ - PullRequest
1 голос
/ 13 января 2012

Как прочитать макро переменную как символ в SAS SQL pass-through

Моя цель - поставить "единицу" как единственное значение в var3, но теперь я получаю

«неизвестный столбец один»

 %macro test(notvar=)

proc sql;
      connect to odbc as conn (datasrc=x user=&user1. password=&pwd1.);
      create table &notvar. (compress=no) as select * from connection to conn
      (
            select var1, var2,
            &notvar. as var3
            from table1
      );
disconnect from conn;
quit;

%mend test;

%test(notvar=one);

1 Ответ

2 голосов
/ 14 января 2012

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

 select var1, var2,
 "&notvar" as var3
 from table1

или

 select var1, var2,
 symget('notvar') as var3
 from table1

Если не указана кавычка или функция для извлечения значения макропеременной, выбранный объект(«один» здесь в вашем случае) рассматривается как столбец в исходной таблице.Таким образом, вы получаете сообщение об ошибке, поскольку такого столбца нет.

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