Cách đơn giản nhất là với 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;
Nếu bạn muốn loại kiểm tra trong đầu ra:
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 cũng hỗ trợ unpivot
toán tử mà làm một cái gì đó tương tự. Nếu bạn có một bảng thực sự lớn và quan tâm đến hiệu suất, hãy unpivot
hoặc một phương pháp sử dụng join
có thể hoạt động.