PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Função Postgresql para classificar caracteres dentro de uma string


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?