[String, Date] 조건에 맞는 사용자 정보 조회하기

쥬쥬스·2023년 11월 17일
0

SQL

목록 보기
58/67
post-thumbnail

문제
USED_GOODS_BOARDUSED_GOODS_USER 테이블에서 중고 거래 게시물을 3건 이상 등록한 사용자의 사용자 ID, 닉네임, 전체주소, 전화번호를 조회하는 SQL문을 작성해주세요. 이때, 전체 주소는 시, 도로명 주소, 상세 주소가 함께 출력되도록 해주시고, 전화번호의 경우 xxx-xxxx-xxxx 같은 형태로 하이픈 문자열(-)을 삽입하여 출력해주세요. 결과는 회원 ID를 기준으로 내림차순 정렬해주세요.

💡 조건

  • 중고 거래 게시글 3건 이상 등록한 사용자
  • id, 닉네임, 전체주소, 전화번호 조회
  • 주소 합치기
  • 전화번호 포맷 바꾸기
  • id 기준으로 내림차순

sql 코드

select user_id, nickname, concat(city," ",street_address1," ",street_address2) "전체주소", 
        concat(substring(tlno,1,3),"-", substring(tlno,4,4),"-",substring(tlno,8,4)) "전화번호"
from used_goods_user as users join
    (SELECT writer_id
    FROM used_goods_board
    GROUP BY writer_id
    HAVING count(*)>=3) as board
    on users.user_id = board.writer_id
order by user_id desc

string 문제로 나온걸로봐서 concat 사용할 수 있는지 없는지 보는 문제인거 같아서 다른건 제외하고 select절만 적어둔다.

  1. 도시 합치기
concat(city," ",street_address1," ",street_address2) "전체주소"

합치는 사이에 공백이 있어서 " "으로 처리해주었는데, space()를 사용해도 된다.

1. 직접 공백 처리
concat(city," ",street_address1," ",street_address2)

2. space() 사용
concat(city,space(1),street_address1,space(1),street_address2)

  1. 전화번호 하이픈 문자 삽입
concat(substring(tlno,1,3),"-", substring(tlno,4,4),"-",substring(tlno,8,4)) "전화번호"

substring으로 숫자 추출해주고 concat으로 묶어주는데 공백 넣었던 것처럼 사이에 하이픈 넣어주면 된다.
(문자열에서는 format 사용하면 안된다ㅎ;; format은 날짜, 시간 형식에 사용)

profile
느려도... 꾸준히.....🐌

0개의 댓글