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 2024

Innovate_SAS_Blue.png

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
  • 4 replies
  • 1978 views
  • 0 likes
  • 2 in conversation