sql - 如何从 Oracle 中的字符串中获取唯一字符?

标签 sql oracle oracle11g

如何从 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/

相关文章:

php - MySQL 选择时间戳在 X 时间之后的条目

sql - 正确转义原始 Django SQL 查询中的字符串

php - 如何从不同文件和数组变量中的 mysql_fetch_assoc() 访问连续行?

java - 已达到 MaxOpenPreparedStatements 限制

php - 如何进行 SQL 查询以选择与某个字符串匹配的所有行,然后根据匹配数对它们进行加权

xml - 在 Oracle 9i 中解析 Web 服务响应

mysql - 如何在 SQL 查询结果中按偏移量过滤掉最后一列之后的所有列 = null 行!= null 行

sql - Oracle 11g - 如何优化慢速并行插入选择?

java - 使用 JDBC 驱动程序在 Android 应用程序和 Oracle DB 之间建立连接

oracle - Oracle 中的 JDBC 瘦连接字符串同时使用冒号和正斜杠