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

Hvordan kan jeg få de unikke karakterer fra en streng i Oracle?

SELECT SUBSTR(REGEXP_SUBSTR('CCCCXXXCCCCCCCCCCCCCCCCXXCCCCCCCCCCCCCCCCCCCCCCC', '^(.)\1*.'), -2, 2) RESULT
FROM DUAL;

Det returnerer CX

Her er en anden løsning:

Select Replace (Wm_Concat (C), ',', '')
From
  (Select Substr ('CCCXCCCXXXCCCCCCCCCCCCCCCCXXCCCCCCCCCCCCCCCC', Rownum, 1) C,
    Min (Rownum) Rn
  From Dual
    Connect By Rownum <= Length ( 'CCCXCCCXXXCCCCCCCCCCCCCCCCXXCCCCCCCCCCCCCCCC')
  Group By Substr ( 'CCCXCCCXXXCCCCCCCCCCCCCCCCXXCCCCCCCCCCCCCCCC', Rownum, 1)
  Order By Rn
  ) X;

Det returnerer alle de unikke tegn i rækkefølge efter deres forekomst. Btw, ja, det ser forfærdeligt ud




  1. hvordan viser man kun tiden i oracle?

  2. Er der en indlejringsgrænse for korrelerede underforespørgsler i nogle versioner af Oracle?

  3. Tilføj måneder til en dato i PostgreSQL

  4. Hvordan finder jeg alle underordnede rækker i MySQL?