Non esiste una funzione nativa con tale funzionalità, ma puoi usare regexp_split_to_table per farlo in questo modo:
select theword
from (select regexp_split_to_table('banana',E'(?=.)') theword) tab
order by theword;
Il risultato sarà:
theword
a
a
a
b
n
n
Questo (?=.) verrà diviso per ogni carattere lasciando il carattere come separatore. Identificherà anche gli spazi. Se hai una parola con spazi e non la vuoi (lo spazio) usa E'(\\s*)' corrisponde a qualsiasi carattere di spazio vuoto. Non ricordo cosa sia la E significa. Cercherò e modificherò la risposta al più presto.
Come spiegato nei DOC nella sezione "regexp_split_to_table"
EDIT:Come ho detto:il significato della E prima della stringa puoi vedere qui:Qual è il " E" prima di una stringa Postgres?