Няма собствена функция с такава функционалност, но можете да използвате regexp_split_to_table
за да направите това по следния начин:
select theword
from (select regexp_split_to_table('banana',E'(?=.)') theword) tab
order by theword;
Резултатът ще бъде:
theword
a
a
a
b
n
n
Този (?=.)
ще се раздели с всеки знак, оставяйки знака като разделител. Той също така ще идентифицира пространства. Ако имате дума с интервали и не го искате (интервалът), използвайте E'(\\s*)'
съвпада с произволен празен знак. Не си спомням какво е E
означава. Ще потърся и редактирам отговора възможно най-скоро.
Както е обяснено в DOC в раздела "regexp_split_to_table"
РЕДАКТИРАНЕ:Както казах:значението на E
преди низа, който можете да видите тук:Какво е " E" преди низ на Postgres?