我正在尝试创建一个显示1的标志,当变量match_flg = total_match_flg
时,否则返回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
我做错了什么?
答案 0 :(得分:2)
是不是因为您没有使用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;
作为旁注,案件使用起来可能很笨拙。请看一下IFC / IFN功能。 http://www.lexjansen.com/wuss/2012/28.pdf