SAS中过滤后输出为空时如何显示提示消息或空记录表
SAS存储进程空查询结果提示功能实现
功能需求
开发SAS存储进程时需要实现如下逻辑:当用户输入参数number后,若Lib.table表按该参数过滤后的结果为空,则展示提示消息或空记录表。
初始实现代码
最初仅实现了参数非空时打印匹配数据的逻辑,未覆盖空结果提示场景,代码如下:
%if (&number ne) %then %do; Proc print data=Lib.table; Var "number"n "name"n "age"n; Where "number"n="&number"; Run; %end;
最终可行解决方案
补充空结果统计提示逻辑后的完整代码如下:
%if (&number ne) %then %do; Proc print data=Lib.table; Var "number"n "name"n "age"n; Where "number"n="&number"; Run; Proc sql; Select case when count(*)=0 then "No record found" Else put(count(*),11.) End as Number_of_records From Lib.table where 'number'n="&number"; Quit; %end;
内容的提问来源于stack exchange,提问作者Samantha
相关产品推荐
相关产品推荐

