숑숑이의 개발일기

문제

https://school.programmers.co.kr/learn/courses/30/lessons/131120

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 설명

다음은 식당 리뷰 사이트의 회원 정보를 담은 MEMBER_PROFILE 테이블입니다. MEMBER_PROFILE 테이블은 다음과 같으며 MEMBER_ID, MEMBER_NAME, TLNO, GENDER, DATE_OF_BIRTH는 회원 ID, 회원 이름, 회원 연락처, 성별, 생년월일을 의미합니다.

Column name Type Nullable
MEMBER_ID VARCHAR(100) FALSE
MEMBER_NAME VARCHAR(50) FALSE
TLNO VARCHAR(50) TRUE
GENDER VARCHAR(1) TRUE
DATE_OF_BIRTH DATE TRUE

 

문제

MEMBER_PROFILE 테이블에서 생일이 3월인 여성 회원의 ID, 이름, 성별, 생년월일을 조회하는 SQL문을 작성해주세요. 이때 전화번호가 NULL인 경우는 출력대상에서 제외시켜 주시고, 결과는 회원ID를 기준으로 오름차순 정렬해주세요.

 

코드

SELECT MEMBER_ID, MEMBER_NAME, GENDER, LEFT(DATE_OF_BIRTH, 10) AS DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE MID(DATE_OF_BIRTH, 6, 2) = '03' AND GENDER = 'W' AND TLNO IS NOT NULL 
ORDER BY MEMBER_ID

 

설명

FROM

MEMBER_PROFILE 테이블의 전체 데이터를 선택한다.

 

WHERE

생년월일의 달이 3월이고, 성별은 여자, 전화번호가 없는 데이터는 제외하는 조건을 추가한다.

생년월일을 검사하는 부분을 MONTH(DATE_OF_BIRTH) = 3으로 작성할 수도 있다.

 

SELECT

아이디, 이름, 성별, 생년월일 컬럼을 선택한다. 이때 생년월일 컬럼은 문제의 조건에 따라 포맷팅한다. 이는

DATE_FORMAT(date_of_birth, '%Y-%m-%d')

이렇게 포맷팅 할수도있다. (이렇게 포맷팅 하는거로 습관을 바꾸자,,)

 

ORDER BY

선택된데이터를 ID 오름차순으로 정렬한다.

profile

숑숑이의 개발일기

@숑숑-

풀스택 개발자 준비중입니다