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?