Quartz | Level 8

## Proc freq with where statement?

Hi,

I am trying to run proc freq on a charachter variable with multiple where statement eg.plus additional criteria,

where var = "1" or var = "2" or var="3",

where var2 = 1;

its not working? does not give errors but just a

NOTE: WHERE clause has been replaced.

any suggestions as to why this is not working?

1 ACCEPTED SOLUTION

Accepted Solutions
Super User

## Re: Proc freq with where statement?

Additionally there are bits that can make your clauses shorter and perhaps easer to understand.

One is use of the IN operator to check for a list of conditions on a single variable:

Where Var in ('1' '2' '3') ;

if the values are numeric you can use a range of values:

Where Var2 in (1 3 15:27); matches 1, 3 and everything from 15 to 27 inclusive.

3 REPLIES 3
SAS Super FREQ

## Re: Proc freq with where statement?

The second WHERE statement is replacing the first. Instead of using two WHERE clauses, use a single statement.  I'm not sure if you want AND or OR, but try like:

where (var = "1" or var = "2" or var="3") AND

var2 = 1;

## Re: Proc freq with where statement?

Hi @AZIQ1,

Maybe you were thinking of the "NOTE: WHERE clause has been augmented."? This (comparably harmless) note occurs if a WHERE statement and a WHERE= dataset option are used in conjunction. Example:

``````proc freq data=sashelp.class(where=(age>14));
where weight>100;
tables age;
run;``````

Super User

## Re: Proc freq with where statement?

Additionally there are bits that can make your clauses shorter and perhaps easer to understand.

One is use of the IN operator to check for a list of conditions on a single variable:

Where Var in ('1' '2' '3') ;

if the values are numeric you can use a range of values:

Where Var2 in (1 3 15:27); matches 1, 3 and everything from 15 to 27 inclusive.

Discussion stats
• 3 replies
• 61095 views
• 2 likes
• 4 in conversation