一天中的好时光。
以下是我需要解决的问题:
我有一些带有列的表table1:field, stage1 - stage10.
是否可以使用PROC SQL
语句CREATE TABLE
创建带有字段的表2:field1, final_stage
其中最后一个阶段是数组stage1 - stage10中的最后一个NOT EMPTY 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 :(得分: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)。