我需要获取按首次找到的顺序返回的字符串中的不同字母。我可以通过多次迭代字符串来完成此操作,但我可以在一个正则表达式中完成此操作吗?
以下是一些示例: “aa”应该返回“a”。 “ab”应该返回“ab”。 “aabbcc”应该返回“abc”。 “abccba”应该返回“abc”。
不确定是否可以使用正则表达式来完成,但普通的 sql 也可以:
WITH t (str) AS
(
SELECT 'aabcddef'
FROM dual
),
all_letters (l) AS
(
SELECT SUBSTR(str,LEVEL,1) FROM t
CONNECT BY LEVEL <= LENGTH(str)
)
SELECT
LISTAGG(DISTINCT l)
FROM all_letters;
abcdef
LISTAGG DISTINCT 仅从 19 日起可用。