프로그래머스
[프로그래머스] 조건에 맞는 사용자 정보 조회하기
ys.k
2024. 2. 27. 21:39
포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.
문제를 보자.
어깨 하는 날인데, 오늘 컨디션이 좋지 않아 그냥 농땡이 피우련다.
이번 문제에서는 오라클에서 처음 사용해 보는 정규식 표현 함수를 배우게 되었다
쿼리를 보자.
쿼리
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()함수로 끊을까.. 생각했지만, 그런 방법에는 발전이 없다.
파이팅
운동 가야하는데..