BookmarkSubscribeRSS Feed
markjc
Fluorite | Level 6
I’m trying to select records based on a variable (Style) but I also want to exclude some of those records based on 2 other variables.
From my test data, I would like all style 104 except those with CD = ‘A’ and Num = 12.
Desired results ID 4,5,6,7

data LIST;
input ID Style CD $ NUM;
datalines;
1 102 A 12
2 102 C 14
3 104 A 12
4 104 A 13
5 104 B 14
6 104 B 12
7 104 C 12
;
run;

PROC PRINT DATA = LIST noobs;
where style = 104 and (cd ne 'A' and num ne 12);
RUN;
/* only returning ID 5 */
2 REPLIES 2
Reeza
Super User
Need an "OR" not "AND" in the where statement.

data LIST;
input ID Style CD $ NUM;
datalines;
1 102 A 12
2 102 C 14
3 104 A 12
4 104 A 13
5 104 B 14
6 104 B 12
7 104 C 12
;
run;

PROC PRINT DATA = LIST noobs;
where style = 104 and (cd ne 'A' OR num ne 12);
RUN;
markjc
Fluorite | Level 6
Thank you!
Using the OR with a not equal makes sense but I wasn't seeing it because I kept thinking you need to be 'A' and 12.

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

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
  • 1192 views
  • 0 likes
  • 2 in conversation