Oracle PL SQL删除字符串中的重复数据

天空
.....
temp Varchar2 (20);
e_name Varchar2 (255);
.....

Begin

e_name := e_name || temp;

Dbms_Output.Put_Line('names: ' || e_name);

Output result
-------------
names: 'John', 'Sam', 'David', 'Sam', 'John', 'Alex'

如何设置我的e_name的格式以删除重复的名称,以便获得输出结果

required result
-------------
names: 'John', 'Sam', 'David', 'Alex'

好吧,您可以像这样修改程序

Begin
e_name := e_name || temp;
 SELECT listagg ( names, ',' ) within GROUP (ORDER BY rn )
   INTO e_name
   FROM
  (
         SELECT level rn,
                regexp_substr ( e_name, '[^,]+', 1, level ) names,
                row_number ( ) over ( partition BY regexp_substr ( e_name, '[^,]+', 1, level ) order by level ) rnn
           FROM dual
          CONNECT BY regexp_substr ( e_name, '[^,]+', 1, level ) IS NOT NULL
  )
  WHERE rnn = 1;

Dbms_Output.Put_Line('names: ' || e_name);

最里面的查询将列表转换成行,然后最外面的查询将过滤并再次创建字符串。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Oracle PL / SQL中的字符串删除

来自分类Dev

Oracle(PL /)SQL中的字符串格式

来自分类Dev

PL / SQL Oracle交互

来自分类Dev

Oracle 不是 pl/sql

来自分类Dev

如何使用PL / SQL从Oracle中的字符串中提取子字符串?

来自分类Dev

使用 oracle pl/sql 从地址中删除重复的单词

来自分类Dev

空位置的Oracle PL / SQL令牌化字符串

来自分类Dev

收到错误在PL / SQL的Oracle

来自分类Dev

Oracle PL / SQL条件声明?

来自分类Dev

Oracle PL / SQL代码约定

来自分类Dev

Oracle触发PL / SQL错误

来自分类Dev

Oracle PL / SQL算术错误

来自分类Dev

收到oracle PL / SQL错误

来自分类Dev

Oracle PL / SQL:函数游标

来自分类Dev

IN运算符,Oracle pl / sql中的100个字符串

来自分类Dev

pl/sql函数将字符串解析为oracle中的token

来自分类Dev

Oracle PL / SQL字符串文字上的字符串比较:意外结果

来自分类Dev

遍历Oracle PL / SQL中的表

来自分类Dev

列名在PL / SQL ORACLE中作为变量

来自分类Dev

“ For循环” Oracle PL / SQL中的迭代计数

来自分类Dev

在Oracle PL / SQL中打印精美

来自分类Dev

在Oracle PL / SQL中声明动态数组

来自分类Dev

oracle中的PL / SQL中文乱码

来自分类Dev

Oracle PL / SQL代码中的神秘声明

来自分类Dev

oracle查询中的IF语句(不是PL / SQL)?

来自分类Dev

Oracle Application Express中的PL / SQL错误

来自分类Dev

程序中的PL / Sql Oracle Function

来自分类Dev

在Oracle pl / sql函数中定义类型

来自分类Dev

Oracle中的PL / SQL触发器