oracle字符串如何简便去重? 比如说’123514543878645‘; 将字符内部重 ...
发布网友
发布时间:2022-04-24 19:28
我来回答
共3个回答
热心网友
时间:2022-04-08 19:21
使用以下函数即可完成:
--字符串去重复字符函数
CREATE OR REPLACE FUNCTION remove_rame_string(
v_strings in varchar2
)
return varchar2
IS
v_strings1 varchar2(64) default ' ';
begin
v_strings1:=nvl(replace(rtrim(ltrim(v_strings)),' ',''),' ');
select listagg(c, '') within group(order by id2) into v_strings1
from (select distinct c,id2
from (select row_number() over(partition by e.v_strings1 order by substr(e.v_strings1, iter.pos, 1)) rn,
substr(e.v_strings1, iter.pos, 1) c,1 as id2
from (select v_strings1 from al) e,
(select rownum pos from user_tables) iter
where iter.pos <= length(e.v_strings1)
order by 1));
return v_strings1 ;
end remove_rame_string;
/
热心网友
时间:2022-04-08 20:39
目前只想到自定义函数 通过循环来实现。。。。
循环 将每个字符写入一个临时表
然后
select distinct col1 from tmp_tb
这个怎么样。。。
热心网友
时间:2022-04-08 22:14
用存储过程可以解决