sql >> Databáze >  >> RDS >> Oracle

Oracle dotaz pro převod více sloupců do jednoho sloupce

Můžete použít UNPIVOT pro jeden řádek, jako je tento, získáte pouze sloupec s hodnotami

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

Ukázkový výstup:

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

Pokud potřebujete sloupec se jmény sloupců z vaší kontingenční tabulky, jednoduše odstraňte vnější výběr

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

Ukázkový výstup:

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

Zde je SQLFiddle demo



  1. Načítání/ukládání všech souvisejících herců ve Freebase

  2. Nerozpoznané klíčové slovo Near Fields, ukončeno při použití INTO OUTFILE v dotazu mysql

  3. Co je MariaDB ColumnStore?

  4. Načíst možnosti pro druhý rozevírací seznam z DB na základě prvního rozevíracího pole