Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Transpose hasil yang dipilih dengan Oracle

Jika Anda ingin membuat kueri untuk setiap panggilan atau menggunakan hardcoded max-column-count, maka Anda dapat melakukan sesuatu seperti itu:

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

Jika cukup untuk mendapatkannya dalam bentuk itu

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

lihat stragg Tom Kyte.



  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:apakah ada alasan logis untuk tidak menggunakan eksekusi paralel dengan subquery dalam daftar SELECT?

  2. Membuang bidang CLOB ke dalam file?

  3. Contoh untuk Mendemonstrasikan Kerentanan SQL Injection dan Pencegahannya di Oracle

  4. CURRENT_TIMESTAMP() Fungsi di Oracle

  5. Perubahan Teknologi Utama di E-Business Suite 12.2