As @Kurt_Bremser explained, the definition of the new variable will be $4.
Here are some cases that illustrate this concept of "last record read" when merging by a b:
When there is a 1 to 1 match, the value read comes from the second data set and thus will always be no more than 1 character long.
When there is a 1 to many match (many observations in Record 2 for the same a b combination), again the last value read comes from the second data set and thus will always be no more than 1 character long.
When there is a mismatch and the a b combination does not appear in the second data set, the last record read comes from the first data set and can be up to 4 characters long.
The tricky case: when there is a many to 1 match (multiple observations for the a b combination from the first data set, but just one observation in the second data set), here's what results for that a b combination. For the first observation, the value comes from the second data set (1 character at most). For all the remaining observations in that a b combination, the last value comes from the first data set and will be up to 4 characters long.
It's trickier than it looks, and is based on the idea that SAS never re-reads an observation. It just keeps whatever it read last. You should probably create a few test data sets to try it out and see what you get.
... View more