Quelqu'un peut me dire comment je peut faire un join conditionnel dans une requete conditionnel?

Par exemple, je veux que le lien entre la table A et B soit les 16 derniers char du champs ID de la table A et le champs ID de la table B lorsque ce LENGTH(A.ID) est supérieur 16 sinon A.ID = B.ID

Merci,