Sas 语句不返回false时的情况

Sas 语句不返回false时的情况,sas,Sas,我试图创建一个显示1的标志,当变量match\u flg=total\u match\u 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 我做错了什么?是因为您没有使用from语句读取中

我试图创建一个显示1的标志,当变量
match\u flg=total\u match\u 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


我做错了什么?

是因为您没有使用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函数。
是因为您没有使用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函数。

发布一些示例数据。否则,我们真的无法帮助您调试此问题。我忘了在“end as”关键字之后包含“From xxxxxxx;”,但我的代码中有它。通常在询问sql问题时,包含数据库/表结构非常重要,以帮助人们确定您做错了什么。我希望此评论能帮助您找到解决问题的方法<缺少来自“数据源”的代码>。如果
match_flg
total_match_flg
的数据类型相同,请提供信息。发布一些示例数据。否则,我们真的无法帮助您调试此问题。我忘了在“end as”关键字之后包含“From xxxxxxx;”,但我的代码中有它。通常在询问sql问题时,包含数据库/表结构非常重要,以帮助人们确定您做错了什么。我希望此评论能帮助您找到解决问题的方法<缺少来自“数据源”的代码>。如果
match_flg
total_match_flg
的数据类型相同,也应提供信息。