sql >> Base de Datos >  >> RDS >> PostgreSQL

Función Postgresql para ordenar caracteres dentro de una cadena

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?