Hello Team,
I am just wondering what below step actually does
data strat.rep_raised_resolved;
set strat.rep_raised_resolved strat.rep_raised_resolvedtotal;
if portfolio = '' then portfolio="TOTAL";
run;
Is it merge or union or full outer join or something else ? Can we relate it with any PROC SQL ?
Please advice us here
Thanks In Advance
This isn't really a question. You may want to learn SAS so you understand some of these basics.
For your code, it is doing two things:
1) it is setting the three datasets: strat.rep_raised_resolved strat.rep_raised_resolvedtotal, underneath each other starting from the left. A bit like a union all statement in SQL, except that set expands the final dataset to incorperate all the variables found across the three datasets.
2) An if logic block decides if the variable portfolio is empty ('') and if so populates it with the string "TOTAL".
Just to add, its not quite a union all (unless by happenstance all datasets have the same structure). Union all will fail if any of the datasets have more or less columns, and do implcit length alterations if needed. Set will fail if datatypes are different for existing columns.
Hello,
Just to add - union will also fail if datatypes are different for the same column
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
What’s the difference between SAS Enterprise Guide and SAS Studio? How are they similar? Just ask SAS’ Danny Modlin.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.