2016-12-16 7 views
0

私は次のコードを実行すると、変数match_flg = total_match_flgが、そうでない場合は0CASE偽

を返すとき、1を示しフラグを作成しようとしています

proc sql; 
create table xxxxxxx as 
    select*, 
    CASE 
    when match_flg = total_match_flg then 1 else 0 
    end as keep_flg 
quit; 

それをすべて1を返し、データセット内でその文が偽であり、返されると確信しています0

私は間違っていますか?

+1

いくつかのサンプルデータを投稿してください。それ以外の場合は、この問題をデバッグするのに役立つことはありません。 – Tom

+0

"From xxxxxxx;"を含めるのを忘れていました。 "end as"キーワードの後に​​私のコードの中にある –

+0

通常、SQLの質問をするとき、あなたが間違っていることを人々が判断するのを助けるために、データベース/テーブル構造を含めることが非常に重要です。このコメントがあなたの問題に対する解決策を見つけるのに役立つことを願っています。 –

答えて

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