BookmarkSubscribeRSS Feed
Not applicable
In a stored process, in a PROC SQL statement, I want to concatenate a value to a numeric field, such as "001" || WOMBAT as ALPHAWOMBAT.

Is this possible? Or, does something have to be done to the numeric field prior to concatenation? Does anyone have a small sample of what they did to be able to do a concatenation of this kind?
Not entirely sure what you want to do since your subject says concat a numeric "field" to a parameter value but down in your explanation, you say you want to concat a value to a numeric field.

Let's say that I have a parameter called "parm" coming from the stored process and I want to concat a number to it. Try this code and see if this is what you were thinking of.
%let parm=WOMBAT;

proc sql;
create table work.testit as
select name, age, height,
"001"||"&parm" as alphawombat
from sashelp.class;

proc print data=work.testit;

it produces this (partial) output: [pre]

Obs Name Age Height alphawombat
1 Alfred 14 69.0 001WOMBAT
2 Alice 13 56.5 001WOMBAT
3 Barbara 13 65.3 001WOMBAT
4 Carol 14 62.8 001WOMBAT
5 Henry 14 63.5 001WOMBAT
6 James 12 57.3 001WOMBAT
or did you mean that you wanted to concat a number from a parm to a second parm to make a new macro variable???? In which case, concatenation works a bit differently. Consider that I still have a parameter whose value is WOMBAT and I have another parameter whose value is 001:
** here I concatenate them in %LET stmts.;
** look in the LOG to see how they work;
** submit them in an EG code node after you submit the above code;
%let parm=WOMBAT;
%let num = 001;
%let macvar = &num&parm;
%let macvar2 = &parm.#
%put -------> concat macro vars;
%put macvar = &macvar;
%put macvar2 = &macvar2;

** now I want to use them in a where clause;
** Must have quotes around them when their usage in the where stmt;
** makes quotes necessary.;
options symbolgen mprint;
proc print data=testit;
where alphawombat in ("&macvar", "&macvar2");


MPRINT and SYMBOLGEN are very useful options because they can help you debug what the macro processor is doing with macro variables when they're referenced in your code.

Not applicable
Thanks for the info! I'll put it to good use.



Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.

If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website. 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Get the $99 certification deal.jpg



Back in the Classroom!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 2 replies
  • 2 in conversation