Hirdetés

Új hozzászólás Aktív témák

  • bambano
    titán

    Hát én egy regexpet ilyenkor meg nem írok már, de a sima SQL még belefér egy hosszú nap után:

    create table t1 (text varchar2(20 char));

    insert into t1 values ('123456123');
    insert into t1 values ('12342');
    insert into t1 values ('229898012342');

    select text from t1;

    TEXT
    --------------------
    123456123
    12342
    229898012342

    select
    text,
    listagg(c, '') within group (order by c) as uniq_c
    from
    (
    select
    distinct text, substr(text, level, 1) as c
    from
    t1
    connect by level <= length(text)
    )
    group by
    text
    ;

    TEXT UNIQ_C
    -------------------- --------------------
    12342 1234
    123456123 123456
    229898012342 0123489

    ha már piszkos dolgokat művelünk :)
    itt egy kezdemény postgresql-ben:

    select szo,s.a from worduniq,generate_series(1,char_length(szo)) as s(a);

    tmp=> select * from worduniq;
    szo
    -----------------------
    123456123
    123456123223453473456
    229898012342
    (3 rows)

    szo | a
    -----------------------+----
    123456123 | 1
    123456123 | 2
    123456123 | 3
    123456123 | 4
    123456123 | 5
    123456123 | 6
    123456123 | 7
    123456123 | 8
    123456123 | 9

    egy substring, egy distinct select és az eredmény összepakolása van hátra. ezeket, egyszerűségük folytán, az olvasóra bízzuk :)

Új hozzászólás Aktív témák