Yes there is: a join using hash tables.
See this document for an example: http://www.nesug.org/proceedings/nesug06/dm/da07.pdf
Advantages:
- Faster in some cases
Disadvantages:
- One of the tables needs to fit in memory
- Syntax is very un-SAS-like (being closer to languages such as java)
- Not everybody is familiar with the concept, certainly novice SAS users (can be problem for maintenance)
In my opinion, hash join is only useful in a very limited set of use cases. One example is where following 2 conditions are met:
- You need to join information from a huge table with a small (easily fits in memory) table.
- The large table is not sorted on the join variables and there is no added value in having it sorted.
When the small table gets extremely small (e.g. only 10 key values), i would maybe consider some approach using 2 macro variables and 2 arrays. This because the code would be as performant and easier to recognize as SAS by other people who might come after me and need to maintain it.
Conclusion: judging from the way the question is framed, you should go for SAS data step merge or proc sql join.