如何从 Oracle 中的字符串中获取唯一字符?
假设我有一列数据
CCCXXXCCCCCCCCCCCCCCCCXXCCCCCCCCCCCCCCCCCCCCCCC
我想返回
'CX'
作为唯一字符的列表。同样: aaaabbbccccdddaaa ==> abcd , HelloO ==> HeloO
顺序很重要,我希望它们的顺序与它们首次出现在字符串中的顺序相同。
有没有办法不使用存储过程来做到这一点?
编辑:添加更多示例
最佳答案
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;
它按出现的顺序返回所有唯一字符。顺便说一句,是的,它看起来很可怕
关于sql - 如何从 Oracle 中的字符串中获取唯一字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7226303/