WITH TMP AS (
SELECT 'A,A,C' AS STR FROM DUAL UNION ALL
SELECT 'C,D,E' FROM DUAL UNION ALL
SELECT 'F,G,G' FROM DUAL
)
SELECT REGEXP_REPLACE(STR, '([A-Za-z]+)\S+\1', '\1')
FROM TMP
by 손님
[2011.01.14 17:23:25]
아..영어 문자로는 되는데 한글이 들어가면 안되네요 ㅠㅠ
그리고 위에는 간단하게 A B 이렇게 써놨는데요.. 진짜 데이터 값은 clob 값이고
조금 길어요 ㅠㅠ 아무튼 고맙습니다~
by 봉
[2011.01.14 17:29:20]
쿼리는 예를 들어서 한거고요..
이런게 있으니 도움이 되지 않을까? 라는 생각으로 작성한 거라 그대로 쓰면 안됩니다.
clob면 쿼리로 하기 힘들것 같습니다.
어떤 고정된 형식이 있어야 그것에 대한 반복여부를 판단할 수 있어서
일반 텍스트 라고 한다면 그 형식을 지정하는게 어려울 것 같네요
by v상이v
[2011.01.14 18:06:43]
SELECT REGEXP_REPLACE(STR, '([^,]+)\S+\1', '\1')
FROM TMP
by camela
[2011.01.17 13:15:40]
select regexp_replace(str,'(.+),\1','\1')
from tmp
\S => 이건 뭔가요? 콤마를 뜻하는 건가요?
by camela
[2011.01.17 13:49:14]
\S 이게 공백이 아닌 문자에 대응되는 거군요.
REGEXP_REPLACE(STR, '([^,]+)\S+\1', '\1') => 여기서 \S+ 하셨는데,
+는 의미가 있는지 궁금하네요.
안써도 되는거 아닌지요?
요즘 정규식에 관심이 가는데 정규식은 찾아도 잘 안나오네요.
어디 예제 많이 나와 있는 곳 아시는데 있으신 분은 좀 가르쳐주세요~
by 마농
[2011.01.18 12:28:36]
데이터를 합치기 전에 미리 중복을 제거하시면 되죠.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.