2016-10-31 10 views
0

誰にとっても良い時間。Proc SQLが最後に空ではないフィールド

を私は列を持ついくつかのテーブルtable1を持っている:ここで

は私が解決する必要があります私の場合です field, stage1 - stage10. は、それがフィールドに表2を作成するために PROC SQL声明 CREATE TABLEを使用することが可能である: field1, final_stage最終段階は、EMPTY最後ではありません配列stage1 - stage10のFIELDです。ありがとうございました;

data table2 (keep field1 final_stage); 
set table1; 
array final_stage[10] stage1-stage10; 
do i=1 to 10; 
If final_stage[i] ^= "" then final_stage=final_stage[i];run; 
+0

上記には、動作例になるための 'end;'ステートメントがありません –

答えて

1

あなたは順序を逆にしようとすると、以下のようcoalescec機能を利用することができます:

proc sql; 
create table table2 as 
    select field1 
    ,coalescec(stage10,stage9,stage8,stage7,stage6 
     ,stage5,stage4,stage3,stage2,stage1) as final_stage 
    from table1; 

coalescec機能がに解決

は、私がデータステップを使用してそれを行う方法を知っていますリスト内の最初の欠損文字の値(documentationを参照)。

関連する問題