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

I tried this 

 

 

%macro getserver;

  %LET x=index(&_srvname, "uview");

 %IF x > 0 %THEN %LET server=https://&_srvname&_url; %ELSE %LET server=http://&_srvname:&_srvport&_url;

%mend;

 

 

x seems to evaluate to "index(sas2.domain.com,"uview");" how would I get it to evaluate to a numeric value

1 ACCEPTED SOLUTION

Accepted Solutions
BrunoMueller
SAS Super FREQ

Since you are using the macro language you also have to use macro functions like %INDEX

 

Please note, that in the macro language you do not need the quotes around text. So your example would look like:

%LET x = %index(&_srvname, uview);

Bruno

View solution in original post

2 REPLIES 2
BrunoMueller
SAS Super FREQ

Since you are using the macro language you also have to use macro functions like %INDEX

 

Please note, that in the macro language you do not need the quotes around text. So your example would look like:

%LET x = %index(&_srvname, uview);

Bruno

Astounding
PROC Star

Building upon what Bruno has mentioned ...

 

Once you follow his advice, you would need to change the way you refer to the macro variable X by adding an ampersand:

 

%if &X > 0 %then ...

 

Alternatively, just get rid of X entirely:

 

%if %index(&_srvname, uview) > 0 %then ...

sas-innovate-white.png

Missed SAS Innovate in Orlando?

Catch the best of SAS Innovate 2025 — anytime, anywhere. Stream powerful keynotes, real-world demos, and game-changing insights from the world’s leading data and AI minds.

 

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1388 views
  • 1 like
  • 3 in conversation