Potresti utilizzare questa idea, completandola o modificandola per il tuo caso:
select * from (
SELECT 'Campo1' as campo, TabellaA.Campo1 as valore FROM TabellaA
union
SELECT 'Campo2', TabellaA.Campo2 FROM TabellaA
union
SELECT 'Campo3', TabellaA.Campo3 FROM TabellaA
union
SELECT 'Campo4', TabellaA.Campo4 FROM TabellaA
) a,
(
SELECT 'Campo1' as campo, TabellaB.Campo1 as valore FROM TabellaB
union
SELECT 'Campo2', TabellaB.Campo2 FROM TabellaB
union
SELECT 'Campo3', TabellaB.Campo3 FROM TabellaB
union
SELECT 'Campo4', TabellaB.Campo4 FROM TabellaB
) b
where a.valore=b.valore
;