sql >> Database >  >> RDS >> PostgreSQL

Postgresql-functie om tekens binnen een tekenreeks te sorteren

Er is geen native functie met dergelijke functionaliteit, maar u kunt regexp_split_to_table . gebruiken om dit als volgt te doen:

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

Het resultaat is:

theword
   a
   a
   a
   b
   n
   n

Deze (?=.) wordt gesplitst door elk teken en laat het teken als scheidingsteken achter. Het zal ook ruimtes identificeren. Als je een woord met spaties hebt en het niet wilt (de spatie), gebruik dan E'(\\s*)' komt overeen met elk witruimteteken. Ik weet niet meer wat de E middelen. Ik zal het antwoord zo snel mogelijk zoeken en bewerken.

Zoals uitgelegd in de DOC's in de sectie "regexp_split_to_table"

EDIT:Zoals ik al zei:de betekenis van de E voor de string kun je hier zien:Wat is de " E" voor een Postgres-tekenreeks?




  1. MySQL-opgeslagen procedures of php-code?

  2. MySQL-winkelwagenstructuur

  3. Beperkte PostgreSQL-machtigingen voor webapp

  4. Hoe verwijder ik dubbele rijen in mijn MySQL-database? (Bewaar degene met de laagste primaire ID)