Hello,
I want to put a where clause in the sql query if the user passes it in the macro.
If the user does not pass any macro parameter for the where clause then the query should get executed without any filtering.
I dont want to use DSID etc options asI have to apply the query on to the database tables also.
I have this but cannot have it working.
%macro isBlank( param ) ;
%sysevalf( %superq( param ) =, boolean )
%mend ;
%macro nos_obs(
dsn = /*Name of SAS Dataset*/
where_stmt=abc
);
%global num_obs ;
%if %isblank(&where_stmt.)=1 %then %do;
%let where_cls=;
%end;
%else %do;
%let where_cls=&where_stmt.;
%end;
proc sql noprint;
select
count(*)
into :num_obs
from &dsn.
&where_cls.
;quit;
%put num_obs--&num_obs.;
%mend ;
%nos_obs(dsn=sashelp.class,where_stmt=where age in (12,13));
... View more