BookmarkSubscribeRSS Feed
deleted_user
Not applicable
I've got a query that creates a new output table field by concatenating a variable to an input table field as follows:

"&threespaces" || EMPLOYEE.PERSON_UID,9) as NEWKEY

However, when I run my query, it complains because the EMPLOYEE_PERSON_UID is numeric. How might I convert this field so the query doesn't complain? I am aware that SAS usually ignores spaces or blanks at the beginning of a field, however, this field needs the "threespaces" at its beginning.

Thanks in advance!
4 REPLIES 4
Cynthia_sas
SAS Super FREQ
Hi:
SAS is really picky about the difference between character and numeric variables -- and spaces are not valid in a number. I assume that you want the NEWKEY variable to be character. The key is doing your concatenate with a PUT function to turn the ID variable into a character value for the concatenate operation. Then the format=$char12. will tell SAS to respect the leading blanks in the new field--which will be a CHARACTER variable.
Good luck!
cynthia
[pre]
data employee;
infile datalines;
input name $ PERSON_UID;
return;
datalines;
alma 123456789
bob 234567890
carl 345678901
dave 456789012
;
run;

proc print data=employee;
title 'person_uid is numeric';
run;

proc sql;
create table testit as
select name, employee.person_uid,
' '||left(put(employee.person_uid,9.)) as NEWKEY format=$char12.
from work.employee as employee;
quit;

proc print data=testit;
title 'NEWKEY is a character variable';
title2 'So the PUT function was used to turn a numeric var into a character value for the concat.';
run;

[/pre]
deleted_user
Not applicable
Thanks, Cynthia,

Still being so darn new to all that SAS has to offer, I wasn't sure if the PUT code could be used inside a query. Your advice, as always, comes in handy!
deleted_user
Not applicable
Thanks for the information, Cynthia. I truly appreciate it.

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 2619 views
  • 0 likes
  • 2 in conversation