Home Forums Main Forums SAS Forum A key difference when creating a macro variable by Call Symput and Proc SQL

  • A key difference when creating a macro variable by Call Symput and Proc SQL

     Datura updated 3 years, 2 months ago 1 Member · 1 Post
  • Datura

    Member
    February 2, 2021 at 7:10 pm

    Interview question:
    Please give 3 differences between between Call Symput and Select Into when you use them to create macro variables.

    There exist several distinct differences between Call Symput and Select Into when you use them to create macro variables. Below is one of them. Run below code:

    data H;
    A= 18965;
    format A date9.;
    call symput( "MA", A);
    run;
    %put MA=*&MA*;

    proc sql;
    select A into: SMA
    from H;
    quit;
    %put MA=*&SMA*;

    The SAS output is:

    %put MA=*&MA*; MA=* 18965*
    %put SMA=*&SMA*; SMA=*04DEC2011*

    So, when we use format, the 2 macro variables created by Call Symput and SQL have different values. Call Symput assigns the numeric value of A—
    18965— to the created macro variable, while the Proc SQL assigns the formatted value—- 04DEC2011— to the generated macro variable. You got it?

    • This discussion was modified 3 years, 2 months ago by  Datura.

Log in to reply.

Original Post
0 of 0 posts June 2018
Now