DATA Step, Macro, Functions and more

Macro picking all names of employes

Reply
Frequent Contributor
Posts: 140

Macro picking all names of employes

Hi

I am having a table with column name Empname i want to pick all the empname and create a macr

i tryed by

proc sql;
select empname from emp into:names separted by ',' ;
quit;

i having the Table all_emp i wnat to picek the employes of emp table in all_emp;

Super User
Posts: 19,815

Re: Macro picking all names of employes

Posted in reply to sas_Forum

You have no FROM clause telling SAS where to select the data from, as well as separated is spelled incorrectly.

proc sql;

select empname from emp into :names separated by ','

FROM table_name;

quit;

Super User
Posts: 5,509

Re: Macro picking all names of employes

Posted in reply to sas_Forum

Well, you do have a FROM clause, but it is in the wrong place.  Technically, it would be moved:

select empname into : names separated by ',' from emp;

But take a step back for a moment.  Even if you created such a macro variable it wouldn't be useful later.  You would get a list like:

Amy,Peter,Fred

What you really would need in order to utilize a macro variable later is a value like:

"Amy", "Peter", "Fred"

You could get SQL to produce that instead.  But take another step back and you'll see that macro language is the wrong approach for this task.  SQL lets you select matching records.  My SQL might not be good enough, but there are enough SQL programmers on the board to correct this if necessary:

proc sql;

select * from all_emp where name in (select name from emp);

quit;

Good luck.

Ask a Question
Discussion stats
  • 2 replies
  • 207 views
  • 0 likes
  • 3 in conversation