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

Postgresql Funktion til at sortere tegn i en streng

Der er ingen indbygget funktion med en sådan funktionalitet, men du kan bruge regexp_split_to_table at gøre det på denne måde:

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

Resultatet bliver:

theword
   a
   a
   a
   b
   n
   n

Denne (?=.) opdeles ved at hvert tegn efterlader tegnet som separator. Det vil også identificere rum. Hvis du har et ord med mellemrum og ikke vil have det (mellemrummet), så brug E'(\\s*)' matcher ethvert mellemrumstegn. Jeg kan ikke huske hvad E er midler. Jeg vil søge og redigere svaret hurtigst muligt.

Som forklaret i DOC'erne i afsnittet "regexp_split_to_table"

EDIT:Som jeg sagde:Betydningen af ​​E før strengen kan du se her:What's the " E" før en Postgres-streng?




  1. Mysql:udfør kommando nægtet bruger ''@'localhost' på grund af rutinefejl

  2. Hvordan ekko tilfældige rækker fra databasen?

  3. Optimering af MySQL-forespørgsler på tværs af hierarkiske data

  4. Tilfældig PRIMÆR NØGLE for Innodb