Det finns ingen inbyggd funktion med sådan funktionalitet men du kan använda regexp_split_to_table
att göra så här:
select theword
from (select regexp_split_to_table('banana',E'(?=.)') theword) tab
order by theword;
Resultatet blir:
theword
a
a
a
b
n
n
Denna (?=.)
kommer att delas av varje tecken och lämnar tecknet som separator. Det kommer också att identifiera utrymmen. Om du har ett ord med mellanslag och inte vill ha det (mellanrummet) använd E'(\\s*)'
matchar alla blanksteg. Jag kommer inte ihåg vad E
är betyder att. Jag kommer att söka och redigera svaret snarast.
Som förklaras i DOC:erna i avsnittet "regexp_split_to_table"
EDIT:Som jag sa:Innebörden av E
före strängen kan du se här:What's the " E" före en Postgres-sträng?