有没有办法选择列中的所有值,然后检查整个列是否只包含某些参数?这是我尝试过的代码,但我可以看出为什么它没有做我想要的:
IF City = "8" or
City = "12" or
City = "15" or
City = "24" or
City = "35"
THEN put "All cities are within New York";
我正在尝试选择“城市”上的整个列,并检查该列是否仅包含这5个值。如果它只包含那5个值,那么我希望它打印到日志中说明。但是,我可以看到我的方法检查每一行是否包含其中一行,如果即使只有一行包含其中一行,它也会打印到日志中。所以我在日志中获得了每个实例的打印。
我想做的是:
want-- IF (all of)City includes 8 & 12 & 15 & 24 & 35
THEN put "All cities are within New York."
答案 0 :(得分:1)
如果您的值列表中没有任何观察值,您只需要测试。
data _null_;
if eof then put 'All cities are within New York';
set have end=eof;
where not (city in ('8','12','15','24','35') );
put 'Found city NOT within New York. ' CITY= ;
stop;
run;
答案 1 :(得分:0)
SQL替代方案可能是:
proc sql;
select case when sum(not city in ('8','12','15','24','35'))>0 then 'Found city NOT within New York' else 'All cities are within New York' end
from have;
quit;
与日志中显示的不同,并不像@Tom提供的那样高效。