PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Postgresql Funzione per ordinare i caratteri all'interno di una stringa

Non esiste una funzione nativa con tale funzionalità, ma puoi usare regexp_split_to_table per farlo in questo modo:

select theword 
  from (select regexp_split_to_table('banana',E'(?=.)') theword) tab 
 order by theword;

Il risultato sarà:

theword
   a
   a
   a
   b
   n
   n

Questo (?=.) verrà diviso per ogni carattere lasciando il carattere come separatore. Identificherà anche gli spazi. Se hai una parola con spazi e non la vuoi (lo spazio) usa E'(\\s*)' corrisponde a qualsiasi carattere di spazio vuoto. Non ricordo cosa sia la E significa. Cercherò e modificherò la risposta al più presto.

Come spiegato nei DOC nella sezione "regexp_split_to_table"

EDIT:Come ho detto:il significato della E prima della stringa puoi vedere qui:Qual ​​è il " E" prima di una stringa Postgres?