You can try creating a calculated column and keep your case/if condition there and then join on this calculated column and obviously it will degrade the performance
But it more depends on what kind of condition you are looking for, may be you could provide more details.
Regards
Krishna Tangudu