sql >> Database >  >> RDS >> Oracle

Hoe kan ik de unieke karakters uit een string in Oracle halen?

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

Het retourneert CX

Hier is een andere oplossing:

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;

Het geeft alle unieke tekens terug in volgorde van voorkomen. Trouwens, ja, het ziet er vreselijk uit




  1. Voeg velden van rijen met dezelfde ID samen in MySQL

  2. Relationele versus niet-relationele databases - Deel 1

  3. Opgeslagen SQL-procedure om de waarde ja/nee in een tabel te controleren en sql . uit te voeren

  4. Hoe cijfers aan het einde van de tekenreeks te verwijderen met behulp van SQL