Not sure if it answers your question on efficiency (AFAIK there is very little difference between the two) but the SAS documentation on the IF-THEN/ELSE statement (see here) states: Details SAS evaluates the expression in an IF-THEN statement to produce a result that is either nonzero, zero, or missing. A nonzero and nonmissing result causes the expression to be true; a result of zero or missing causes the expression to be false. If the conditions that are specified in the IF clause are met, the IF-THEN statement executes a SAS statement for observations that are read from a SAS data set, for records in an external file, or for computed values. An optional ELSE statement gives an alternative action if the THEN clause is not executed. The ELSE statement, if used, must immediately follow the IF-THEN statement. Using IF-THEN statements without the ELSE statement causes SAS to evaluate all IF-THEN statements. Using IF-THEN statements with the ELSE statement causes SAS to execute IF-THEN statements until it encounters the first true statement. Subsequent IF-THEN statements are not evaluated. Note: For greater efficiency, construct your IF-THEN/ELSE statement with conditions of decreasing probability. Comparisons Use a SELECT group rather than a series of IF-THEN statements when you have a long series of mutually exclusive conditions. Use subsetting IF statements, without a THEN clause, to continue processing only those observations or records that meet the condition that is specified in the IF clause.
... View more