Oracle LISTAGG排重方法

1.使用正则表达式进行排重SELECT regexp_replace('2,2,3,4,5 ', '([^,]+)(,\1)+', '\1') AS col FROM dual查询结果:SQL> SELECT regexp_replace('2,2,3,4,5 ', '([^,]+)(,\1)+', '\1') AS col 2 FROM dual 3 ; COL——–2,3,4,5可以对字符串进行排重

2. 使用上面的正则表达式对listagg进行排重SELECT listagg(t.deptno, ',') within GROUP(ORDER BY t.deptno) deptno,regexp_replace((listagg(t.deptno, ',') within GROUP(ORDER BY t.deptno)), '([^,]+)(,\1)+', '\1') bl_number FROM scott.emp t执行结果:SQL> SELECT listagg(t.deptno, ',') within GROUP(ORDER BY t.deptno) deptno, 2regexp_replace((listagg(t.deptno, ',') within GROUP(ORDER BY t.deptno)), '([^,]+)(,\1)+', '\1') bl_number 3 FROM scott.emp t 4 ; DEPTNOBL_NUMBER——————————————————————————– ——————————————————————————–10,10,10,20,20,20,20,20,30,30,30,30,30,3010,20,30成功对listagg排重。

,接受失败也等于给了自己从零开始的机会,接受失败更是一种智者的宣言和呐喊;

Oracle LISTAGG排重方法

相关文章:

你感兴趣的文章:

标签云: