nan*_*aka 4 sql oracle oracle11g
如何从Oracle中的字符串中获取唯一字符?
假设我有一个包含数据的列
CCCXXXCCCCCCCCCCCCCCCCXXCCCCCCCCCCCCCCCCCCCCCCC
Run Code Online (Sandbox Code Playgroud)
我想'CX'作为唯一字符列表返回.
同样:aaaabbbccccdddaaa ==> abcd,HelloO ==> HeloO
顺序很重要,我希望它们与首次出现在字符串中的顺序相同.
有没有办法在不使用存储过程的情况下执行此操作?
编辑:添加更多示例
SELECT SUBSTR(REGEXP_SUBSTR('CCCCXXXCCCCCCCCCCCCCCCCXXCCCCCCCCCCCCCCCCCCCCCCC', '^(.)\1*.'), -2, 2) RESULT
FROM DUAL;
Run Code Online (Sandbox Code Playgroud)
它回来了 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;
Run Code Online (Sandbox Code Playgroud)
它按照它们出现的顺序返回所有唯一的字符.顺便说一句,是的,它看起来很可怕
| 归档时间: |
|
| 查看次数: |
3782 次 |
| 最近记录: |