我正在尝试创建一个标志,当变量为match_flg = total_match_flg时显示1,否则返回0。
当我运行以下代码时
proc sql;
create table xxxxxxx as
select*,
CASE
when match_flg = total_match_flg then 1 else 0
end as keep_flg
quit;它返回全部为1,并且确定在数据集中,语句应该为false并返回一些0
我做错了什么?
发布于 2016-12-16 23:33:54
是不是因为您没有使用from语句读取任何数据?我运行了类似的代码(添加了一个),它运行得很好。
编辑:包含我的测试数据;
data test;
do i = 1 to 10;
match_flag = i;
total_match_flag = 10-i;
output;
end;
drop i;
run;
proc sql;
create table x as
select *,
case
when match_flag = total_match_flag then 1 else 0
end as keep_flg
from test;
quit;顺便提一下,case使用起来可能会很笨拙。相反,让我们看看IFC/IFN函数。http://www.lexjansen.com/wuss/2012/28.pdf
https://stackoverflow.com/questions/41187454
复制相似问题