📌 문제
문제 설명
다음은 식당 리뷰 사이트의 회원 정보를 담은 MEMBER_PROFILE 테이블입니다. MEMBER_PROFILE 테이블은 다음과 같으며 MEMBER_ID, MEMBER_NAME, TLNO, GENDER, DATE_OF_BIRTH는 회원 ID, 회원 이름, 회원 연락처, 성별, 생년월일을 의미합니다.
문제
MEMBER_PROFILE 테이블에서 생일이 3월인 여성 회원의 ID, 이름, 성별, 생년월일을 조회하는 SQL문을 작성해주세요. 이때 전화번호가 NULL인 경우는 출력대상에서 제외시켜 주시고, 결과는 회원ID를 기준으로 오름차순 정렬해주세요.
📌 나의 풀이
Code
SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE MONTH(DATE_OF_BIRTH) = 3
AND GENDER = 'W'
AND TLNO IS NOT NULL
ORDER BY MEMBER_ID ASC;
Solution
1. DATE_OF_BIRTH 컬럼에서 MONTH가 3월이면서, GENDER가 'W'이고, TLNO가 NULL이 아닌 행만 추출
- 3월만 추출할 때에는 MONTH() 함수 사용
2. MEMBER_ID 컬럼 기준 오름차순 정렬
3. MEMBER_ID, MEMBER_NAME, GENDER, DATE_OF_BIRTH 컬럼만 가져오기
- DATE_OF_BIRTH은 DATE_FORMAT 함수를 사용하여 YYYY-mm-dd 형태로 출력
배운 내용
1. 'NULL이 아니다'를 표현하고 싶을 땐 IS NOT 사용하기
NULL이 아니라는 조건을 적을 때, 처음에 저는 '!='과 '<>'을 떠올렸습니다.
그러나 답이 틀린 것을 보고, NULL은 IS NOT을 사용해야 함을 알게 되었습니다.
앞으로는 헷갈리지 않겠죠?
'Coding Test > Programmers' 카테고리의 다른 글
[Programmers / MySQL] 12세 이하인 여자 환자 목록 출력하기 (Level 1) (0) | 2024.09.02 |
---|---|
[Programmers / MySQL] 서울에 위치한 식당 목록 출력하기 (Level 4) (0) | 2024.09.02 |
[Programmers / MySQL] 과일로 만든 아이스크림 고르기 (Level 1) (0) | 2024.09.01 |
[Programmers / MySQL] 흉부외과 또는 일반외과 의사 목록 출력하기 (Level 1) (1) | 2024.09.01 |