티스토리 뷰

포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.

문제를 보자.

 

어깨 하는 날인데, 오늘 컨디션이 좋지 않아 그냥 농땡이 피우련다.

 

이번 문제에서는 오라클에서 처음 사용해 보는 정규식 표현 함수를 배우게 되었다

 

쿼리를 보자.

 

쿼리

SELECT U.USER_ID
,   U.NICKNAME
, U.CITY||' '||U.STREET_ADDRESS1||' '||U.STREET_ADDRESS2 전체주소
, REGEXP_REPLACE(U.TLNO,'(.{3})(.{4})(.{4})', '\1-\2-\3') 전화번호
FROM (SELECT B.WRITER_ID
        from USED_GOODS_BOARD B, USED_GOODS_USER U
        WHERE B.WRITER_ID = U.USER_ID
        GROUP BY B.WRITER_ID
        HAVING COUNT(B.WRITER_ID) > 2) R, USED_GOODS_USER U
WHERE R.WRITER_ID = U.USER_ID
ORDER BY 1 DESC

 

위 부분에서 가장 핵심이 되는, REGEXP_REPLACE(컬럼, 정규식표현) 부분이다.

 

간단하게'(. {3}(. {4})(. {4 {))', '\1-\2-\3' 부분은 3자리 4자리 4자리로 끊는다는 이야기이다.

 

또한 '(02|.{3})' 으로 표현된다면, 02이거나 3 자릿수로 끊게 된다.

 

중요한 개념이니 꼭 알아두자.

 

나머지는 쉽다.

 

SUBSTR()함수로 끊을까.. 생각했지만, 그런 방법에는 발전이 없다.

 

파이팅

 

운동 가야하는데..

 

댓글