sql >> Databasteknik >  >> RDS >> Oracle

Hur kan jag få de unika tecknen från en sträng i Oracle?

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

Den returnerar CX

Här är en annan 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;

Den returnerar alla unika tecken i ordning efter deras förekomst. Btw, ja, det ser hemskt ut




  1. Bandbreddsvänlig frågeprofilering för Azure SQL Database

  2. MySQL-konfiguration för flytande NHibernate

  3. Hur tar man bort en tabellrad om fältet post_title är duplicerat i en annan rad?

  4. hur öppnar jag en katalog med pl/sql?