回答

收藏

如何在Oracle中用正则表达式从逗号分隔的列表中删除重复项,但我不希望重复

技术问答 技术问答 75 人阅读 | 0 人回复 | 2023-09-13

我有这串8 `  o, T/ {& f; }7 i$ k- ~4 Z
ABCD1234, XYZ, ABCD1234, ABCD1234C, ABCD1234, abc, abcX, 1234U, 1234, j& L# a; ?* P" J& d
我想要,但我不想 重复
6 \0 F8 N) a  [ABCD1234, XYZ, ABCD1234C, abc, abcX, 1234U, 1234,$ _' x: U  }4 q
我在正则表达式下面使用  J$ h* Y& \1 L* P$ y
select regexp_replace (6 v# _: ^: _1 J. K/ X% p
    'ABCD1234, XYZ, ABCD1234, ABCD1234C, ABCD1234, abc, abcX, 1234U, 1234',, U6 k: V: C4 B; ?  A6 ]# Y8 D
     '([^,]+)(,\1)+', '\1'
( a$ @7 F8 ~" A" g ) test8 b8 q9 w' Y5 D* T' v1 ?* h
from dual;) G+ I' m2 y( @, {
                / ~) @/ q( V7 W! ]
解决方案:: I' F) G0 ^. d7 O& P' ^' `9 o3 S
                  A1 u. k) I- [, c- ^4 W
' n0 @+ y4 b0 `) e- [* Y. s
- u  w" z& l, Z0 s' f5 j
                按照http://www.dba-
0 i3 D9 g( x7 |9 y! foracle.com/t_extract_comma_delimited_strings_oracle_sql.html的文章进行尝试:5 h* s2 W* f' ~# X6 G; p8 N5 t
select distinct str from
5 Q! v7 Z+ o( |3 b) f" ~(select regexp_substr ('ABCD1234, XYZ, ABCD1234, ABCD1234C, ABCD1234, abc, abcX, 1234U, 1234', '[^, ]+',1, rownum) str ! _# y; G8 M; \" [2 z2 @5 z
from dual
: M& q+ G% k- A" \. Pconnect by level 小提琴:http* n2 Q$ ^& I4 I! [1 H
://sqlfiddle.com/#!4/c858d/5
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则