BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
JBerry
Quartz | Level 8

I'm having problems using INDEX() function ... 

I have a string variable which is a space separated list,

s = AGE WEIGHT GENDER HEIGHT

When I query a dataset like this:

proc sql;

  select variablename

  from MYDATASET

  where index("%upcase(%sysfunc(compbl(&s)))", compress(upcase(variablename), ' ')) > 0; quit;run;

I end up getting results like this:

WEIGHT

MAX_WEIGHT

MIN_WEIGHT

ANYTHING_WITH_WEIGHT_IN_IT

I'm looking for a perfect match by word - not pattern. I was thinking of appending a space to either end of the search pattern, but I'm not sure if that's the most elegant

1 ACCEPTED SOLUTION

Accepted Solutions
Reeza
Super User

IndexW - index word function

Also, you can use the upcase/upper and compbl function directly, you don't need % or sysfunc as far as I can see.

View solution in original post

2 REPLIES 2
Reeza
Super User

IndexW - index word function

Also, you can use the upcase/upper and compbl function directly, you don't need % or sysfunc as far as I can see.

JBerry
Quartz | Level 8

Many thanks! That's exactly what I was looking for.

Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.

Explore Now →
What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

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
  • 2 replies
  • 2234 views
  • 1 like
  • 2 in conversation