Как я могу получить уникальные символы из строки в Oracle? - PullRequest
4 голосов
/ 29 августа 2011

Как получить уникальные символы из строки в Oracle?

Допустим, у меня есть столбец с данными

CCCXXXCCCCCCCCCCCCCCCCXXCCCCCCCCCCCCCCCCCCCCCCC

и я хочу вернуть 'CX' в качестве списка* уникальные символы1011 *

Есть ли способ сделать это без использования хранимой процедуры?

Редактировать: добавить больше примеров

1 Ответ

9 голосов
/ 29 августа 2011
SELECT SUBSTR(REGEXP_SUBSTR('CCCCXXXCCCCCCCCCCCCCCCCXXCCCCCCCCCCCCCCCCCCCCCCC', '^(.)\1*.'), -2, 2) RESULT
FROM DUAL;

Возвращает CX

Вот еще одно решение:

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;

Возвращает все уникальные символы в порядке их появления. Кстати, да, это выглядит ужасно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...