CS/데이터베이스

SQL - SELECT : 여러 가지 조건 처리

JWonK 2023. 2. 21. 17:21
728x90
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/131120?language=mysql 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

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

Column nameTypeNullable
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를 기준으로 오름차순 정렬해주세요.

 


처리해야하는 조건이 

  1. 전화번호가 NULL인 경우 출력 x    →.   IS NOT NULL 문법 이용
  2. 생일이 3월    →   데이터 포맷을 출력 형태로 맞춘 후 LIKE 문법을 사용하여 조건 처리
  3. 여성 회원만 출력    →  WHERE문으로 조건 처리
  4. 회원 ID를 기준으로 오름차순 정렬    →   ORDER BY로 정렬한 후 출력

와 같다. → 뒤에 적은 문법들을 사용하여 문제를 해결하면 된다.

 

 

SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE DATE_OF_BIRTH LIKE '%-03-%' and GENDER = 'W' AND TLNO IS NOT NULL
ORDER BY MEMBER_ID ASC;
728x90
반응형