SQL 문제

문제 55. 조건에 맞는 사용자 정보 조회하기(난이도 7)(CONCAT)

kagan-draca 2024. 7. 26. 16:14

 

문제에서 전체주소와 전화번호를 출력해야 하는데

 

전체주소는 CITY, STREET_ADDRESS1, STREET_ADDRESS2를

' '(공백)으로 더해줘야하고,

 

전화번호는 일부를 쪼개 '-'로 더해줘야한다.

 

전화번호의 경우 SUBSTRING, LEFT, RIGTH 함수로 글자 일부를 쪼갤 수 있다.

 

문자열을 합쳐주는 함수를 찾아보니 CONCAT와 CONCAT_WS가 있었다.

CONCAT는 CONCAT('컬럼명1', '컬럼명2', '컬럼명3', ...)으로 사용할 수 있고,

CONCAT_WS는 CONCAT_WS('사이에 넣을 문자열', '컬럼명1', '컬럼명2', '컬럼명3',...)

로 사용 가능했다.

 

제출한 코드 : 

 

SELECT B.USER_ID, B.NICKNAME,
CONCAT_WS(' ',B.CITY, B.STREET_ADDRESS1, B.STREET_ADDRESS2) AS 전체주소
,CONCAT_WS('-',SUBSTRING(TLNO,1,3), SUBSTRING(TLNO,4,4), SUBSTRING(TLNO,8,12)) AS 전화번호
FROM USED_GOODS_BOARD AS A INNER JOIN USED_GOODS_USER AS B
ON A.WRITER_ID = B.USER_ID
GROUP BY A.WRITER_ID
HAVING COUNT(A.WRITER_ID) >= 3
ORDER BY B.USER_ID DESC