Можете да го направите по следния начин:
select col1 from table union
select col2 from table union
. . .
select coln from table;
Използването на union
премахва дублиращи се стойности. Имайте предвид, че това предполага, че типовете колони са съвместими (като например всички са низове).
РЕДАКТИРАНЕ:
Ако колоната в таблица трябва да има само един тип. (Добре, може е вариант, но това вероятно не е опростяване.) Можете да прехвърлите всичко към 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;
Като алтернатива можете да групирате колоните по тип данни и да направите отделно изпълнение за всяка от тях или отделна колона за всеки тип данни. Малко вероятно е да имате точни съвпадения между типовете данни, така че това може да задоволи нуждите ви.