BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
alepage
Barite | Level 11

Hello,

 

I have seen a lot of message on how to check if a dataset is empty but many of the proposed codes generate errors.

 

Here's my little contribution to the community.

I have test this code and it seems to works properly.

 

Please note that my dataset named base is empty (no column, no observations) and &records gives zero.

You can replace the dataset by sashelp.class to test with a non zero dataset.  It works fine with both situation.

 

you can use the macro variable &records with a conditionnal statement to do what you want.

 

data _null_; /*data step to check for number of records in your dataset*/
%global records;
%let records=0;
set base end=last;
if last then call symput("Records",put(_n_,8.)); /*_n_ is observation number in sas dataset*/
run;
%put &records;

1 ACCEPTED SOLUTION

Accepted Solutions
Ksharp
Super User

if it is zero ,then table is empty .

 

%let dsid=%sysfunc(open(sashelp.class));
%let nobs=%sysfunc(attrn(&dsid,nlobs));
%let dsid=%sysfunc(close(&dsid));

%put nobs= &nobs ;

View solution in original post

2 REPLIES 2
RW9
Diamond | Level 26 RW9
Diamond | Level 26

Nice, but for most (except DB libnames) datasets the observation count is already present in sashelp.vtables (or the SQL dictionary equivalent).  So if you really need a macro variable (and for most operations you wouldn't, only maybe fr create an output report):

data _null_;
  set sashelp.vtable (where=(libname="<yourlib>" and memname="<yourds>"));
  call symput("records",put(nobs,best.));
run;

If I need a report though, simpler to do:

data _null_;
  set sashelp.vtable (where=(libname="<yourlib>" and memname="<yourds>"));
  if nobs > 0 then call execute('%Do_Report');
run;
Ksharp
Super User

if it is zero ,then table is empty .

 

%let dsid=%sysfunc(open(sashelp.class));
%let nobs=%sysfunc(attrn(&dsid,nlobs));
%let dsid=%sysfunc(close(&dsid));

%put nobs= &nobs ;

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

Creating Custom Steps in SAS Studio

Check out this tutorial series to learn how to build your own steps in SAS Studio.

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
  • 61921 views
  • 10 likes
  • 3 in conversation