Não há função nativa com tal funcionalidade, mas você pode usar
regexp_split_to_table
para fazer assim:select theword
from (select regexp_split_to_table('banana',E'(?=.)') theword) tab
order by theword;
O resultado será:
theword
a
a
a
b
n
n
Este
(?=.)
será dividido por cada caractere deixando o caractere como separador. Também identificará espaços. Se você tem uma palavra com espaços e não quer (o espaço) use E'(\\s*)'
corresponde a qualquer caractere de espaço em branco. Não me lembro o que o E
significa. Vou pesquisar e editar a resposta o mais rápido possível. Conforme explicado nos DOCs na seção "regexp_split_to_table"
EDIT:Como eu disse:O significado do
E
antes da string você pode ver aqui:Qual é o " E" antes de uma string Postgres?