Няма собствена функция с такава функционалност, но можете да използвате 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?