A maneira mais simples é com uma
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;
Se você quiser o tipo de teste na saída:
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;
O Oracle 11 também suporta o
unpivot
operador que faz algo semelhante. Se você tem uma tabela muito grande e se preocupa com o desempenho, unpivot
ou um método usando join
pode trabalhar.