Il n'y a pas de fonction native avec une telle fonctionnalité mais vous pouvez utiliser regexp_split_to_table
pour le faire comme ceci :
select theword
from (select regexp_split_to_table('banana',E'(?=.)') theword) tab
order by theword;
Le résultat sera :
theword
a
a
a
b
n
n
Ce (?=.)
sera divisé par chaque caractère en laissant le caractère comme séparateur. Il identifiera également les espaces. Si vous avez un mot avec des espaces et que vous ne le voulez pas (l'espace) utilisez E'(\\s*)'
correspond à n'importe quel caractère d'espacement. Je ne me souviens pas ce que le E
moyens. Je vais rechercher et modifier la réponse dès que possible.
Comme expliqué dans les DOC dans la rubrique "regexp_split_to_table"
EDIT :Comme je l'ai dit :la signification du E
avant la chaîne, vous pouvez voir ici :Quel est le " E" devant une chaîne Postgres ?