BookmarkSubscribeRSS Feed
tstjean
Calcite | Level 5

I want to be able to check if a SAS dataset has any observations.

It is has 0 observations, I want to exit the SAS script.

Any suggestions on what I would do?

4 REPLIES 4
PaigeMiller
Diamond | Level 26

You can write a macro that only executes more code if the number of observations is > 0, and it stops executing if the number of observations is = 0.

 

%macro example;
    proc sql noprint;
        select count(variablename) into :nobs from datasetname;
    quit;
    %if &nobs>0 %then %do;
             .... whatever SAS code you want ....
    %end;
%mend;
--
Paige Miller
ChrisWard
SAS Employee

There are various ways to check the obs, the previous comment contains one.  To exit a sas script the abort statement is probably an option for you.

 

https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000230210.htm

tstjean
Calcite | Level 5
Thanks for both options. I will take a look at both.
RW9
Diamond | Level 26 RW9
Diamond | Level 26

To me, that sounds like a bad idea.  Personally, if your code doesn't create anything then there should be some defensive coding which creates and outpu stating there is no results.  Any abort/abend in code I use is pulled out as a problem, code should flow through without any errors, warnings, abnormal exits, and the final output should be qc'able even if only to confirm zero observations.

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

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
  • 4 replies
  • 4397 views
  • 1 like
  • 4 in conversation