Solved
Contributor
Posts: 62

# proc tabulate -where statement

I want to select  all female students in all grades except grade 3 to run a proc tabulate, but  I am getting this error . Is there a solution to this without listing grade 1,2,4,5,6,and 7 in the "where" statement. Thank you.

proc tabulate data= new;

where  sex=2 and grade ne 2;

ERROR: WHERE clause operator requires compatible variables.

Accepted Solutions
Solution
‎06-05-2016 07:39 PM
Posts: 5,541

## Re: proc tabulate -where statement

One or both of your variables is character, so either

where  sex='2' and grade ne 3;

or

where  sex=2 and grade ne '3';

or

where  sex='2' and grade ne '3';

PG

All Replies
Contributor
Posts: 62

## Re: proc tabulate -where statement

I want to select  all female students in all grades except grade 3 to run a proc tabulate, but  I am getting this error . Is there a solution to this without listing grade 1,2,4,5,6,and 7 in the "where" statement. Thank you.

proc tabulate data= new;

where  sex=2 and grade ne 3;

ERROR: WHERE clause operator requires compatible variables.

Solution
‎06-05-2016 07:39 PM
Posts: 5,541

## Re: proc tabulate -where statement

One or both of your variables is character, so either

where  sex='2' and grade ne 3;

or

where  sex=2 and grade ne '3';

or

where  sex='2' and grade ne '3';

PG
Contributor
Posts: 62

## Re: proc tabulate -where statement

Thank you PGStats!
Super User
Posts: 23,776

## Re: proc tabulate -where statement

Character values need quotes

To test for multiple grades use IN e.g. Grades in (2 3 4 5 6 7). If character all the grade values should be enclosed in quotes.

🔒 This topic is solved and locked.