문제
https://school.programmers.co.kr/learn/courses/30/lessons/164670
접근방법
concat과, left, right, substr, coalesce 등의 문자열 조작함수를 활용한다.
코드
-- 코드를 입력하세요
SELECT u.user_Id,
u.nickname,
concat(u.city,' ', u.street_address1,' ', coalesce(u.street_address2, '')) as 전체주소,
concat(
left(u.tlno, 3),
'-',
substr(u.tlno, 4, 4),
'-',
right(u.tlno, 4)
) as 전화번호
from used_goods_board as b join used_goods_user as u on b.writer_id = u.user_id
group by u.user_id
having count(*) >= 3
order by u.user_id desc
개선할 점
substr을 배웠다. 유용하게 쓰일 거 같다.
substr(4, 4)라고 한다면,
index4의 위치부터 시작해서 4만큼의 길이인 substr을 반환한다는 것을 유의하자.
또 유의할 것이 있다.
스키마를 살펴보고 나서
nullable한 자료형이 있다면,
coalesce를 잘 활용하는 것이 좋다.
'코딩테스트 준비 > SQL문법' 카테고리의 다른 글
[프로그래머스 LV4] - 자동차 대여 기록 별 대여 금액 구하기(string, date) SQL(how to use 'with clause' ) (1) | 2024.02.18 |
---|---|
[프로그래머스 LV5] - 상품을 구매한 회원 비율 구하기(join) SQL (0) | 2024.02.17 |
[프로그래머스 LV4] - 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기(join) SQL (0) | 2024.02.17 |
[프로그래머스] - 자동차 대여 기록에서 장기/단기 대여 구분하기 SQL - String, Date (0) | 2024.02.16 |
[프로그래머스] - 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (group by) SQL (0) | 2024.02.15 |