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: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

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
  • 2576 views
  • 0 likes
  • 2 in conversation