Oracle
 sql >> база данни >  >> RDS >> Oracle

Транспониране на избраните резултати с Oracle

Ако искате да генерирате заявката за всяко повикване или да използвате твърдо кодиран максимален брой колони, тогава можете да направите нещо подобно:

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

Ако е достатъчно да го получите в тази форма

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

вижте 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. Как да изляза от скрипт в SQLPlus, когато възникне грешка и да се върна към подканата SQLPlus, без да прекъсвам връзката или да излизам от SQLPlus?

  2. създайте таблица с последователност.nextval в oracle

  3. Oracle След изтриване на тригер... Как да избегнем мутираща таблица (ORA-04091)?

  4. Oracle ODP.Net с Entity Framework 6 - Доставчик, съвместим с база данни за Entity Framework, не можа да бъде намерен

  5. Връщане на редове, които съдържат числови стойности в Oracle