oracle列字段数据逗号拼接的去重,之后重新组成新的字符串

新建一个function 实现此功能

create or replace FUNCTION SF_SPLIT_STR(strName IN VARCHAR2)
  RETURN VARCHAR2 AS
  v_strName VARCHAR2(5000);
BEGIN
  WITH ACCTS AS
   (SELECT DISTINCT str
      from (SELECT REGEXP_SUBSTR(replace(strName, ', ', ','),
                                 '[^,]+',
                                 1,
                                 LEVEL,
                                 'i') AS STR
              FROM DUAL
            CONNECT BY LEVEL <= LENGTH(replace(strName , ', ', ',')) -
                       LENGTH(REGEXP_REPLACE(replace(strName ,
                                                              ', ',
                                                              ','),
                                                      ',',
                                                      '')) + 1))
  SELECT wm_concat(STR) INTO v_strName FROM ACCTS;
  RETURN v_strName;
END SF_SPLIT_STR;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值