문제 설명
다음은 식당 리뷰 사이트의 회원 정보를 담은 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를 기준으로 오름차순 정렬해주세요.
풀이
생일이 3월인 회원을 가져와야 하므로 MONTH(DATE_OF_BIRTH)를 통해 MONTH가 3인 데이터를 가져왔습니다.
이후 AND를 통해 다른 조건을 걸어주었습니다.
출력에 MEMBER_ID, MEMBER_NAME, GENDER, DATE_OF_BIRTH 필드가 있으므로 Select로 지정해주었고,
DATE_FORMAT을 사용하여 날짜 형식을 지정해주었습니다.
별칭을 사용하지 않으면 필드 이름이 DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') 가 되기 때문에, as를 사용해 별칭을 지정해주었습니다.
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
728x90
'DB > SQL' 카테고리의 다른 글
[DB/SQL] UNION, UNION ALL 쿼리 결과 합치기 (0) | 2023.03.21 |
---|---|
[DB/SQL] 테이블 Join, Inner Join과 Left Join이란? 예시를 통해 알아보자 (0) | 2023.03.21 |
[SQL] DATE_FORMAT 날짜/시간 포맷 지정하기 (0) | 2023.03.21 |
[DB/SQL] Order by 오름차순/내림차순 정렬하기 (0) | 2023.03.20 |
[DB/SQL] Group by를 통한 범주의 개수, 최소/최대값, 평균값, 합계 구하기 (0) | 2023.03.20 |