No existe una función nativa con dicha funcionalidad, pero puede usar regexp_split_to_table
para hacerlo así:
select theword
from (select regexp_split_to_table('banana',E'(?=.)') theword) tab
order by theword;
El resultado será:
theword
a
a
a
b
n
n
Este (?=.)
se dividirá por cada carácter dejando el carácter como separador. También identificará los espacios. Si tiene una palabra con espacios y no la quiere (el espacio) use E'(\\s*)'
coincide con cualquier carácter de espacio en blanco. No recuerdo qué E
medio. Buscaré y editaré la respuesta lo antes posible.
Como se explica en los DOC en la sección "regexp_split_to_table"
EDITAR:Como dije:el significado de E
antes de la cadena que puede ver aquí:¿Cuál es la " E" antes de una cadena de Postgres?