Hi, my database need modify existing variables in the Case When syntax for EG.
However, I cannot create enough room for condition my new variables:
For instance, I can use sas base
data final;
set work.QUERY_FOR_JAN2016_SAS7BDAT1_0003;
if whichone = 'januaryppc' then do;
PRE_MRC = MRC_PRE_JAN;
Post_MRC = MRC_POST_JAN;
pp_from = from_pp_JAN;
pp_to = to_pp_JAN;
changes = changejan;
end;
but for EG, I really cannot do that for column changes.
Anyway SQL can do multiple column change in a macro statement maybe?
This is a typical case where data step logic is more efficient than SQL, at least from a coding/maintenance point of view.
So if you already have a data step, use that in EG. And then use SQL/Query Builder for other steps.
And you could perhaps use a macro here, but I can't see the benefit. The code/task will be less readable, and harder to maintain.
In SQL, either query builder or code, you need a case statement for EACH variable change you want to make.
Could you set the month into a macro variable, and then use something like this?
...
select
MRC_PRE_&MTH. as PRE_MRC,
MRC_POST_&MTH. as Post_MRC,
from_pp_&MTH. as pp_from,
to_pp_&MTH. as pp_to,
change&MTH. as changes
...
Tom
This is a typical case where data step logic is more efficient than SQL, at least from a coding/maintenance point of view.
So if you already have a data step, use that in EG. And then use SQL/Query Builder for other steps.
And you could perhaps use a macro here, but I can't see the benefit. The code/task will be less readable, and harder to maintain.
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.