2017-02-12 4 views
0

У меня есть таблица a, которая содержит столбцы a1 и a2.Условие «IF» в левом соединении в «SAS» proc sql

У меня есть стол b, который содержит столбцы b1 и b2.

Я хочу left joinb к a на condition1 если a2 is null и condition2 если a2 is not null.

Как я могу построить этот запрос?

+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); 
Смежные вопросы