한달 전에 코테를 본 적이 있는데, 이 때 프로그래머스 사이트를 알게 되어서 백준에 없는 SQL 문제들이 많더라구요.
(코테는 떨어졌지만.. 제가 완벽하게 아는건 SQL 문제 밖에 없더군요..)
오늘 풀어 본 문제는 3월에 태어난 여성 회원 목록을 출력하는 문제 였습니다.
https://school.programmers.co.kr/learn/courses/30/lessons/131120#qna
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이 표는 MEMBER_PROFILE 테이블의 구조를 나타낸 것이고 문제 설명에 나와 있는 것처럼 각각 속성들의 이름이 나타나있습니다.
우선 검색해야 할 항목은 TLNO(전화번호) 빼고 SELECT문에 입력하면 되고 조건절인 WHERE문에 생일이 3월이고 성별은 여성인 회원을 입력하고 이 때 전화번호가 NULL인 경우는 출력하지 않게 합니다. 마지막 줄에 오름차순으로 정렬하라 했으니 ORDER BY문을 사용하면 됩니다.
MEBER_PROFILE 테이블을 출력하면 위 사진처럼 뜹니다.
결과값이
박서연 회원만 출력하도록 해야합니다.
그럼 조건문을 먼저 생각해보면 생일이 3월인 여성을 출력해야 합니다.
생일이 3월인 여성을 출력하기 위해 LIKE 문법을 사용하였지만 오류가 발생하였습니다. ...
문제가 기초라하길래 너무 단순하게 생각하였는지, 학교에서 배운 SQL 문법을 생각해보았습니다.
그 중 TO_CHAR문법이 생각나 날짜함수로 사용 가능하다는걸 알았습니다.
YYYY-MM-DD를 풀어보면
YYYY: 년도
MM: 월
DD: 일
을 나타냅니다. 여기서 년도를 두자리만 나타내고 싶으면 YY 이렇게 사용하면 됩니다.
따라서 코드를 입력해보면
문제에 TLO가 NULL이면 제외하라했으니 TLO IS NOT NULL을 WHERE 절에 넣어야 합니다.
ORDER BY문에서 오름차순으로 정렬하라 했으니 ASC를 입력하거나 생략이 가능합니다.