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

Truy vấn Oracle để chuyển đổi nhiều cột thành một cột

Bạn có thể sử dụng UNPIVOT cho một hàng như thế này để chỉ nhận được cột có giá trị

SELECT colvalue 
  FROM
(
  SELECT * 
    FROM Table1
  UNPIVOT INCLUDE NULLS
  (
    colvalue FOR cols IN (col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, ... col50)
  )
);

Đầu ra mẫu:

| COLVALUE |
------------
|        1 |
|        2 |
|   (null) |
|..........|

Nếu bạn cần cột có tên cột từ bảng xoay vòng của mình, chỉ cần bỏ chọn bên ngoài

SELECT * 
  FROM Table1
UNPIVOT INCLUDE NULLS
(
  colvalue FOR cols IN (col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, ... col50)
);

Đầu ra mẫu:

|  COLS | COLVALUE |
--------------------
|  COL1 |        1 |
|  COL2 |        2 |
|  COL3 |   (null) |
| ..... |......... |

Đây là SQLFiddle bản demo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL * Plus có thể đọc các biến môi trường từ máy đang chạy không?

  2. Các mô hình định dạng được hỗ trợ cho các hàm ngày ROUND () và TRUNC () trong Oracle

  3. Cách xử lý chính xác ngày tháng trong các ràng buộc truy vấn

  4. Oracle tương đương với SQL Server bao gồm các cột để lập chỉ mục

  5. Giải nén Oracle BLOB rất chậm