Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

UNPIVOT trên nhiều cột để trả về nhiều cột

như thế này:

SQL> select * from network_table;

 ORIG_CODE    ORIG_SV  DEST_CODE    DEST_SV
---------- ---------- ---------- ----------
        14          1         15          1
        12          2         22          2
        18          4         11          1
        15          1         22          3
        14          3         11          1

SQL> select case name when 'ORIG_SV' then orig_code else dest_code end code, val 
  2  from network_table 
  3  unpivot (val for name in (orig_sv, dest_sv));

      CODE        VAL
---------- ----------
        14          1
        15          1
        12          2
        22          2
        18          4
        11          1
        15          1
        22          3
        14          3
        11          1

hoặc 10g trở xuống:

SQL> select case  r when 1 then orig_code else dest_code end code,
  2         case r when 1 then orig_sv else dest_sv end val
  3    from network_table, (select rownum r from dual connect by level <= 2)
  4  /

      CODE        VAL
---------- ----------
        14          1
        12          2
        18          4
        15          1
        14          3
        15          1
        22          2
        11          1
        22          3
        11          1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORACLE:KHÔNG CÓ CƠ SỞ DỮ LIỆU - nhưng dữ liệu tồn tại

  2. Tối ưu hóa mã trong PL / SQL. Làm cho nó phù hợp. Mã đang chạy nhưng không đúng

  3. Nhà phát triển SQL Oracle:Không thành công - Kiểm tra không thành công:Bộ điều hợp mạng không thể thiết lập kết nối?

  4. 1000000 đến 1M và 1000 đến 1K trong truy vấn oracle

  5. Tìm phiên bản / bản vá của máy chủ weblogic trong EBS R12.2 / Weblogic độc lập