Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle - разделяне на един ред на множество редове

Най-простият начин е с 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 може да работи.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JdbcTemplate - Вмъкнете или актуализирайте Oracle BLOB с помощта на SQL MERGE

  2. Как да получите века от дата в Oracle

  3. Задействане за налагане на връзката М-М

  4. идентифицирайте разликата от NUMBER(5) и NUMBER(8,2) USER_TAB_COLUMNS

  5. Обработка на изключения в pl/sql