Hi,
In IBM DB2, we can select certain digits from left or right, I am wondering if I can use proc sql to achieve same functionality as:
RIGHT(DIGITS(test.Id_Number), 3)
Thanks,
Eric
Yes,it is a character variable. you can convert it to numeric:
data have;
input v $;
cards;
adf124a
3456pb
7g39b2
;
proc sql;
create table want as select input(substr(compress(v,,'kd'),length(compress(v,,'kd'))-2),3.) as new
from have;
quit;
proc contents data=want;run;
how about:
data have;
input v $;
cards;
adf124a
3456pb
7g39b2
;
proc sql;
select substr(compress(v,,'kd'),length(compress(v,,'kd'))-2)as new
from have;
quit;
Linlin
Thanks Linlin,
If I understand right, the sub string is a char type and could not be used to compared with a numeric type, is that right?
Yes,it is a character variable. you can convert it to numeric:
data have;
input v $;
cards;
adf124a
3456pb
7g39b2
;
proc sql;
create table want as select input(substr(compress(v,,'kd'),length(compress(v,,'kd'))-2),3.) as new
from have;
quit;
proc contents data=want;run;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.
Find more tutorials on the SAS Users YouTube channel.