sql >> Database >  >> RDS >> Oracle

SQL-query om verschillende waarden van alle kolomwaarden in een tabel te krijgen

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.




  1. Een storing in de communicatieverbinding oplossen met JDBC en MySQL

  2. PostgreSQL IF-instructie

  3. Een overzicht van vertrouwde extensies in PostgreSQL 13

  4. Gegevens splitsen in 3 kolommen