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

SQL dotaz pro získání odlišných hodnot všech hodnot sloupců v tabulce

Můžete to udělat takto:

select col1 from table union
select col2 from table union
. . .
select coln from table;

Použití union odstraní duplicitní hodnoty. Všimněte si, že to předpokládá, že typy sloupců jsou kompatibilní (například všechny jsou řetězce).

EDIT:

Pokud sloupec v tabulce musí mít pouze jeden typ. (Dobře, mohlo být variantou, ale to pravděpodobně není zjednodušení.) Vše můžete přetypovat do 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;

Případně můžete seskupit sloupce podle datového typu a provést samostatný běh pro každý z nich nebo samostatný sloupec pro každý datový typ. Je nepravděpodobné, že budete mít přesné shody napříč datovými typy, takže to může vyhovovat vašim potřebám.




  1. Použití Dapper QueryMultiple v Oracle

  2. jak mohu získat všechna ID počínaje daným ID rekurzivně v tabulce postgresql, která odkazuje sama na sebe?

  3. Jak získat dnešní / včerejší data z databáze MySQL?

  4. Jak povolím protokol pomalých dotazů MySQL?