Oracle
 sql >> Datenbank >  >> RDS >> Oracle

SQL-Abfrage, um eindeutige Werte aller Spaltenwerte in einer Tabelle zu erhalten

Sie können es so machen:

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

Die Verwendung von union entfernt doppelte Werte. Beachten Sie, dass dies davon ausgeht, dass die Spaltentypen kompatibel sind (z. B. dass alle Zeichenfolgen sind).

BEARBEITEN:

Wenn die Spalte in einer Tabelle nur einen Typ haben muss. (Okay, es könnte eine Variante sein, aber das ist wahrscheinlich keine Vereinfachung.) Sie können alles nach varchar2() umwandeln :

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;

Alternativ können Sie die Spalten nach Datentyp gruppieren und für jede einen separaten Lauf oder eine separate Spalte für jeden Datentyp durchführen. Es ist unwahrscheinlich, dass Sie genaue Übereinstimmungen zwischen den Datentypen haben, daher könnte dies Ihre Anforderungen erfüllen.