sql >> Databasteknik >  >> RDS >> Oracle

Oracle - strängkombinatorisk permutation

Edit:Fick den generiska. Riktigt enkelt i slutändan (men det tog ett tag att komma dit)

WITH words AS
(   SELECT  REGEXP_SUBSTR( '&txt', '\S+', 1, LEVEL )    AS word
        ,   LEVEL                                       AS num
    FROM    DUAL
    CONNECT BY LEVEL <= LENGTH( REGEXP_REPLACE( '&txt', '\S+\s*', 'X' ) )
)
SELECT  SYS_CONNECT_BY_PATH( W.word, ' ' )
FROM    words   W
CONNECT BY NOCYCLE PRIOR W.num != W.num

Edit2:Tog bort redundanta maxnum-grejer. Överbliven från tidigare försök




  1. Enklaste sättet att kopiera en MySQL-databas?

  2. hur listar jag mysql-frågeresultat i en viss sekvens?

  3. MySQL CHAR() vs T-SQL CHAR():Vad är skillnaden?

  4. Söka och filtrera / förfina databasresultat i Laravel 4