左边的“IF”条件加入“SAS”proc sql

时间:2017-02-12 16:47:27

标签: sql sas

我有一个表a1,其中包含a2列和b列。

我有一个表b1,其中包含b2left join列。

我想b a condition1 a2 is null condition2 a2 is not null name,age,address,gender getline();。{/ {} p>

如何构建此查询?

1 个答案:

答案 0 :(得分:1)

如果我理解正确:

proc sql;
    select . . .
    from a left join
         b
         on (a2 is null and condition1) or
            (a2 is not null and condition2);

这是您的要求的直接翻译。通常,以下通常具有更好的性能,因为这可以更好地使用索引(取决于条件的性质):

proc sql;
    select a.*, coalesce(b1.b2, b2.b2) as b2
    from a left join
         b b1
         on (a2 is null and condition1) left join
         b b2
         on (a2 is not null and condition2);