各位高手好,我在编写一段宏程序时遇到一个问题,从sql语句中选取的变量有时候因为本身表里面是空值,接下来没法操作,不知道如何判断,比如在宏中写了这么一段:
proc sql;
select var1,var2,var3,var4 into :varname1,:varname2,:varname3,:varname4 from combi_id where id = &i.;
quit;
%let var=%sysfunc(catx(&space.,&varname1.,&varname2.));
%if &varname3. ^= %str() %then %do;
%let &var.=%sysfunc(catx(&space.,&var.,&varname3.));
%put &varname3.;
%end;
%if &varname4. ^= %str() %then %do;
%let &var.=%sysfunc(catx(&space.,&var.,&varname4.));
%end;
%put var=&var.;
其中varname3和varname4可能为空值,想弄个判断再拼字符串,结果不知道如何写if语句,上面那种写法请高手看看有没有问题,谢谢!