Най-простият начин е с 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;
Ако искате типа тест в изхода:
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 също поддържа unpivot
оператор, който прави нещо подобно. Ако имате наистина голяма таблица и държите на производителността, unpivot
или метод, използващ join
може да работи.