sql >> Database teknologi >  >> RDS >> Oracle

Sorter tegn i varchar2 alfabetisk

Fra et svar på http://forums.oracle.com/forums/thread .jspa?messageID=1791550 det virker måske, men du har ikke 10 g at teste på...

SELECT MIN(permutations) FROM (SELECT REPLACE (SYS_CONNECT_BY_PATH (n, ','), ',') permutations FROM (SELECT LEVEL l, SUBSTR ('&col', LEVEL, 1) n FROM DUAL CONNECT BY LEVEL <= LENGTH ('&col')) yourtable CONNECT BY NOCYCLE l != PRIOR l) WHERE LENGTH (permutations) = LENGTH ('&col')

I eksemplet col er defineret i SQL*Plus, men hvis du gør dette til en funktion, kan du sende det ind, eller du kan omarbejde det til at tage en tabelkolonne direkte.

Jeg ville tage det som et udgangspunkt snarere end en løsning; det oprindelige spørgsmål handlede om anagrammer, så det er designet til at finde alle permutationer, så noget lignende, men forenklet, kan være muligt. Jeg formoder, at dette ikke skalerer særlig godt for store værdier.



  1. Hentning af forespørgselsresultater fra 2 db-tabeller, selv når den anden tabel ikke har nogen tilsvarende indgange

  2. Multiple Where In

  3. Introduktion til FORALL-erklæring i Oracle-databasen

  4. Gentag en streng flere gange i MySQL – REPEAT()