sql >> Database teknologi >  >> RDS >> Oracle

Oracle-forespørgsel til at konvertere flere kolonner til én kolonne

Du kan bruge UNPIVOT for en række som denne for kun at få kolonne med værdier

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

Eksempeloutput:

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

Hvis du har brug for kolonne med kolonnenavne fra din pivoterede tabel, skal du bare droppe det ydre valg

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

Eksempeloutput:

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

Her er SQLFiddle demo



  1. Uploader stor mysql-database på AWS RDS ved hjælp af kit - 'MySQL-serveren er gået væk'

  2. Database:En tabel for hvert sprog eller en tabel med en sprogkolonne

  3. Udfør flere SQL-sætninger med NHibernate

  4. Brug Mysql i dev/prod og H2 i test