Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

एकाधिक कॉलम वापस करने के लिए कई कॉलम पर UNPIVOT

इस तरह:

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

या 10 ग्राम और उससे कम:

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. JDBC में Oracle के निदान में सही ढंग से नाम कैसे प्राप्त करें?

  2. जब हमारे पास डेटागार्ड हो तो फ्लैशबैक कैसे करें

  3. गतिशील एसक्यूएल लूप

  4. Oracle SQL क्वेरी को Azure SQL क्वेरी में बदलें

  5. दो तिथियों के बीच शुक्रवारों की संख्या