Najprostszym sposobem jest użycie union all :
select object_tested, test_date, test_a as test, test_a_result as test_result
from table t
union all
select object_tested, test_date, test_b as test, test_b_result as test_result
from table t;
Jeśli chcesz, aby w wyniku pojawił się typ testu:
select object_tested, test_date, 'a' as test_type, test_a as test, test_a_result as test_result
from table t
union all
select object_tested, test_date, 'b' as test_type, test_b as test, test_b_result as test_result
from table t;
Oracle 11 obsługuje również unpivot operator, który robi coś podobnego. Jeśli masz naprawdę duży stół i zależy Ci na wydajności, unpivot lub metoda wykorzystująca join może pracować.