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;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.