There are many ways to approach this, depending on what you want to do. First, Reeza's suggestion:
data combined;
merge a b (rename=(common_column=common_column_from_b));
by id;
run;
You can also apply WHERE= as a data set option without renaming:
data combined;
merge a b (where=(common_column > 5));
by id;
run;
When you specify the column name, it will always be applied to the second data set's value (at least for the first observation per ID). The rules are more complex after that first observation. Since you are posting that the condition is applied based on the first data set's value, this indicates that you have a many to one merge (with many observations in the first data set, to one observation in the second data set). So you could also code:
data combined;
merge a b;
by id;
if first.id then first_value = common_column;
if /* some condition based on first_value */;
retain first_value;
run;
Give us a little more context ... something will definitely be possible.
... View more