database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 39970 게시물 읽기
No. 39970
동일문자가 연속으로 있는 경우를 표기할 수 있을런지요?
작성자
초보
작성일
2013-01-16 09:11
조회수
6,103

동일문자가 연속으로 있는 경우를 표기할 수 있을런지요?

특수기호, space 제외하고
동일 영문/숫자가 2회이상 연속으로 나오는 것을
체크해야 되는데..
헤메다가 방법을 못찾았습니다.

도움 부탁드립니다.

WITH T AS(
        SELECT 'A*!A' C FROM DUAL UNION ALL
        SELECT 'A A' C FROM DUAL UNION ALL
        SELECT 'AAB' C FROM DUAL UNION ALL
        SELECT 'KAAB' C FROM DUAL UNION ALL
        SELECT 'ABA' C FROM DUAL UNION ALL
        SELECT 'A B A' C FROM DUAL
       )
SELECT C
FROM   T;

[원하는 결과]

C        원하는결과
-------- ---------
A*!A     중복대상
A A      중복대상
AAB      중복대상
KAAB     중복대상
ABA      비대상
A B A    비대상

이 글에 대한 댓글이 총 2건 있습니다.

-- 정규식을 이용한 해법
SELECT c
       -- 1단계. 특수문자제거 : 숫자와 알파벳이 아닌것 지움
     , REGEXP_REPLACE(c, '[^0-9A-Za-z]') c1
       -- 2단계. 연속문자 추출
       -- "\1"은 괄호안의 .쩜을 의미하며, 쩜은 모든 문자를 의미함
     , REGEXP_SUBSTR(REGEXP_REPLACE(c, '[^0-9A-Za-z]'), '(.)\1') c2
       -- 3단계. 원하는 결과
       CASE WHEN REGEXP_LIKE(REGEXP_REPLACE(c, '[^0-9A-Za-z]'), '(.)\1')
            THEN '중복대상' ELSE '비대상' END c3
  FROM t
;

마농(manon94)님이 2013-01-16 12:48에 작성한 댓글입니다.

감사합니다.

어렵지만, 테스트를 통해서 제 것으로 만들도록 노력하겠습니다.

감사합니다.

초보님이 2013-01-16 13:26에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39974지식이 납루하여..여쭙니다. (저에게도 리플을 주세요..) [1]
물어보자
2013-01-17
4921
39973아래 쿼리 좀 봐주세요. 속도 차이 의문 [1]
배움이
2013-01-17
5650
39971datafile은 경로구분없이 데이터가 쌓이나요? [5]
임서희
2013-01-16
5127
39970동일문자가 연속으로 있는 경우를 표기할 수 있을런지요? [2]
초보
2013-01-16
6103
39969오라클 클라이언트가 주기적으로 끊키는 현상 [1]
문의
2013-01-15
5067
39968특정 합계점수로 포인트주는 쿼리 관련 문의 드립니다. [4]
my
2013-01-11
6774
39967네트워크 연결없이 OracleDB 어떻게 쓰나요?
이영주
2013-01-10
5461
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다