sql >> Databáze >  >> RDS >> Oracle

Oracle - rozdělení jednoho řádku na více řádků

Nejjednodušší způsob je s 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;

Pokud chcete typ testu ve výstupu:

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 také podporuje unpivot operátor, který dělá něco podobného. Pokud máte opravdu velký stůl a záleží vám na výkonu, unpivot nebo metoda využívající join může fungovat.



  1. Osvědčený postup pro strukturu databáze hlasování komentářů

  2. Odstraňte koncovou desetinnou nulu

  3. MYSQL Vybíráte PŘESNÉ slovo s dotazem MATCH?

  4. Porovnání s hodnotami NULL