- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hello
I am attempting to query all records from a table where VQueue ends with .CT
Help please.
proc sql;
create table Queue as
select *
from hierarchy
WHERE VQueue = '*.CT';
quit;
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hi:
SAS has a lot of string processing functions (such as FIND, FINDW, INDEX, INDEXC, etc) and Perl Regular Expressions which might work for you. It also might be that a simple LIKE or CONTAINS operator might work for you.
For example, this PROC PRINT shows the use of a WHERE clause using the LIKE operator. With the LIKE operator, the underscore (_) is a wildcard for one character and the percent sign (%) is a wildcard for more than one character.
See "Syntax of WHERE Expression" in the SAS documentation.
cynthia
data words;
infile datalines;
input vqueue $;
return;
datalines;
CTXYZ
XYZ.CT
ABCTG
RS.CT
;
run;
proc print data=words;
where VQueue like '%.CT';
title 'Search for %.CT - where % represents any characters before .CT';
run;
proc print data=words;
title 'Search for __XYZ -- 2 underscores represent any 2 characters before XYZ';
where VQueue like '__XYZ';
run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hi:
SAS has a lot of string processing functions (such as FIND, FINDW, INDEX, INDEXC, etc) and Perl Regular Expressions which might work for you. It also might be that a simple LIKE or CONTAINS operator might work for you.
For example, this PROC PRINT shows the use of a WHERE clause using the LIKE operator. With the LIKE operator, the underscore (_) is a wildcard for one character and the percent sign (%) is a wildcard for more than one character.
See "Syntax of WHERE Expression" in the SAS documentation.
cynthia
data words;
infile datalines;
input vqueue $;
return;
datalines;
CTXYZ
XYZ.CT
ABCTG
RS.CT
;
run;
proc print data=words;
where VQueue like '%.CT';
title 'Search for %.CT - where % represents any characters before .CT';
run;
proc print data=words;
title 'Search for __XYZ -- 2 underscores represent any 2 characters before XYZ';
where VQueue like '__XYZ';
run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Fred
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Since you had indicated that you wanted strings that "ended with "CT", I would have gone with Cynthia's suggestion to use the LIKE operator.
Art
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
How can we use Wild Characters in Data Step?
I am trying to get something like.
data Apple;
Set Ball;
where upcase(trim(Column2)) like '%CAR%';
run;
But i got an error for this.
Is there any way to use this in Datastep?
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
data Apple;
Set Ball;
if find(upcase(trim(Column2)) , 'CAR' ) ;
run;