sql >> Databasteknik >  >> RDS >> Oracle

Oracle - dela en rad i flera rader

Det enklaste sättet är 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;

Om du vill ha typen av test i utgången:

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 stöder också unpivot operatör som gör något liknande. Om du har ett riktigt stort bord och bryr dig om prestanda, unpivot eller en metod som använder join kan fungera.



  1. SQLite till Postgres (Heroku) GROUP BY

  2. Hur man omtilldelar AUTO_INCREMENT-kolumnen för varje rad i en MySQL-tabell med PHP

  3. Återställning av MySQL root-lösenord fungerar inte

  4. Commit data i en mysql-behållare