Here's another, simpler possibility. It's possible this is all you really want:
data want;
set have (where=(case=1))
have (where=(case=0));
by id;
if first.id;
run;
It keeps first case record (deleting all else). If there are no case records, it keeps the first control record.
... View more