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

Chuyển đổi các kết quả đã chọn với Oracle

Nếu bạn muốn tạo truy vấn cho mỗi cuộc gọi hoặc sử dụng số lượng cột tối đa được mã hóa cứng, thì bạn có thể làm như vậy:

WITH tab AS
(
  SELECT table_name, column_name FROM user_tab_cols WHERE column_id <= 4
) -- user_tab_cols used to provide test data, use your table instead
SELECT MAX(c1) c1,
       MAX(c2) c2,
       MAX(c3) c3,
       MAX(c4) c4
  FROM (SELECT table_name,
               DECODE( column_id, 1, column_name ) c1,
               DECODE( column_id, 2, column_name ) c2,
               DECODE( column_id, 3, column_name ) c3,
               DECODE( column_id, 4, column_name ) c4
          FROM ( SELECT table_name,
                        column_name,
                        ROW_NUMBER() OVER ( PARTITION BY table_name ORDER BY column_name ) column_id
                   FROM tab
               )
       )
 GROUP BY table_name
 ORDER BY table_name

Nếu đủ để lấy nó ở dạng đó

TABLENAME1|COL1,COL2
TABLENAME2|COL1,COL2,COL3

hãy xem Tom Kyte's stragg.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để tạo bảng trong Oracle SQL Developer?

  2. So sánh với ngày tháng trong Oracle sql

  3. Gọi một thủ tục PL / SQL khác trong một thủ tục

  4. Cách truy cập Oracle DB trong VirtualBox từ Máy chủ (windows)

  5. Có cách nào để cài đặt java trên Oracle 11g XE không?