data miss;
run;
%macro a;
%do i= 1 %to 25;
data _null_;
set mulu;
if _n_ =&i then call symput("bl",NAME);
run;
proc sql;
select count(id) into:no
from xinxi_f
where &bl is null;
quit;
data miss;
set miss;
&bl=input(&no,8.);
run;
%end;
%mend;
%a;
代码如上,宏变量no是用sql从数据集中取出的一个数字,基本为6位数,因为宏变量获取的是字符型,所以用input转换了下,但是结果会被截断为2位,检查过,宏变量提取没问题,如果用%let=%eval(&no)预先转换也没有问题,但就是用了input那句就不行,烦请大神帮忙看下,是什么原因