Je kunt het als volgt doen:
select col1 from table union
select col2 from table union
. . .
select coln from table;
Het gebruik van union
verwijdert dubbele waarden. Merk op dat dit veronderstelt dat de kolomtypes compatibel zijn (zoals allemaal strings).
BEWERKEN:
Als de kolom in een tabel maar één type hoeft te hebben. (Ok, het zou een variant zijn, maar dat is waarschijnlijk geen vereenvoudiging.) Je kunt alles casten naar varchar2()
:
select cast(col1 as varchar2(255)) from table union
select cast(col2 as varchar2(255)) from table union
. . .
select cast(coln as varchar2(255)) from table;
Als alternatief kunt u de kolommen groeperen op gegevenstype en voor elk afzonderlijk een uitvoering uitvoeren, of een afzonderlijke kolom voor elk gegevenstype. Het is onwaarschijnlijk dat u exacte overeenkomsten voor alle gegevenstypen zult hebben, dus dit kan aan uw behoefte voldoen.