Den enkleste måde er med en 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;
Hvis du ønsker testtypen i outputtet:
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 understøtter også unpivot
operatør, der gør noget lignende. Hvis du har et rigtig stort bord og bekymrer dig om ydeevne, unpivot
eller en metode, der bruger join
kan fungere.