관리 메뉴

오늘도 배운다

3월에 태어난 여성 회원 목록 출력하기 >> 코딩테스트 연습 SELECT 본문

코딩테스트연습(SQL)

3월에 태어난 여성 회원 목록 출력하기 >> 코딩테스트 연습 SELECT

LearnerToRunner 2022. 11. 16. 15:27

문제

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

 

 

>> TLNO, GENDER, DATE_OF_BRITH에 NULL이 있을 수 있다. 주의!

 

제출답안

MySQL Ver.

SELECT member_id, member_name, gender, 
	DATE_FORMAT(date_of_birth, "%Y-%m-%d") AS date_of_birth

FROM member_profile

WHERE gender = 'W' -- 여성이고
    AND MONTH(date_of_birth) = 3 -- 생월이 3월이며
    AND tlno IS NOT NULL -- 전화번호가 null이 아닌

ORDER BY 1

 

Oracle Ver.

SELECT member_id, member_name, gender, 
	TO_CHAR(date_of_birth, 'YYYY-MM-DD') AS date_of_birth
FROM member_profile
WHERE gender = 'W' --성별이 여자이며
    AND EXTRACT(MONTH FROM date_of_birth) = 3 -- 생월은 3
    AND tlno IS NOT NULL -- 전화번호는 NULL이 아닌
ORDER BY 1

 

MySQL vs Oracle: 날짜 데이터에서 Month를 뽑아내는 방법과 날짜 데이터 포맷을 변경하는 법이 다르다
MySQL : DATE_FORMAT, MONTH
Oracle: TO_CHAR, EXTRACT

 

풀이

더보기

생년월일 및 성별을 어떻게 표기하는지 확인

SELECT DISTINCT date_of_birth FROM member_profile
SELECT DISTINCT gender FROM member_profile

 

WHERE 조건 넣어주기

a. MySQL

WHERE gender = 'W' -- 여성이고
    AND MONTH(date_of_birth) = 3 -- 생월이 3월이며
    AND tlno IS NOT NULL -- 전화번호가 null이 아닌

b. Oracle

WHERE gender = 'W'
    AND EXTRACT(MONTH FROM date_of_birth) = 3
    AND tlno IS NOT NULL

 

SELECT에 필요한 정보 중 생년월일 포맷 변경하기

a. MySQL

SELECT member_id, member_name, gender, DATE_FORMAT(date_of_birth, "%Y-%m-%d") AS date_of_birth

 b. Oracle

SELECT member_id, member_name, gender, TO_CHAR(date_of_birth, 'YYYY-MM-DD') AS date_of_birth

 

문제 바로가기

728x90
Comments