我有一个表a1
,其中包含a2
列和b
列。
我有一个表b1
,其中包含b2
和left join
列。
我想b
a
condition1
a2 is null
condition2
a2 is not null
name,age,address,gender
getline();
。{/ {} p>
如何构建此查询?
答案 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);