Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle - einzelne Zeile in mehrere Zeilen aufteilen

Der einfachste Weg ist mit einem 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;

Wenn Sie die Art des Tests in der Ausgabe haben möchten:

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 unterstützt auch das unpivot Operator, der etwas Ähnliches tut. Wenn Sie eine wirklich große Tabelle haben und Wert auf Leistung legen, unpivot Sie oder eine Methode, die join verwendet kann funktionieren.