https://school.programmers.co.kr/learn/courses/30/lessons/131120
코드설명
SELECT + MONTH(DATE) + IS NOT NULL 를 활용합니다.
SQL쿼리는 회원 프로필 데이터에서 3월에 생일을 맞이하는 여성 회원 중 전화번호(TLNO)가 존재하는 회원들의 정보를 가져오는 것입니다.
- SELECT 문:
- MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d'): 회원 ID, 회원 이름, 성별, 생년월일을 선택합니다. DATE_FORMAT 함수를 사용하여 생년월일을 원하는 형식으로 변환합니다.
- FROM 문:
- FROM MEMBER_PROFILE: MEMBER_PROFILE 테이블에서 데이터를 가져옵니다.
- WHERE 문:
- WHERE MONTH(DATE_OF_BIRTH) = 3: 생일이 3월인 회원을 필터링합니다.
- AND TLNO IS NOT NULL: 전화번호가 NULL이 아닌 회원을 추가로 필터링합니다.
- AND GENDER = 'W': 여성 회원을 추가로 필터링합니다.
- ORDER BY 문:
- ORDER BY MEMBER_ID ASC: 회원 ID를 오름차순으로 정렬합니다.
코드
SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d')
FROM MEMBER_PROFILE
WHERE MONTH(DATE_OF_BIRTH) = 3
AND TLNO IS NOT NULL
AND GENDER = 'W'
ORDER BY MEMBER_ID ASC
SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d')
FROM MEMBER_PROFILE
WHERE DATE_FORMAT(DATE_OF_BIRTH, '%m') = 3
AND TLNO IS NOT NULL
AND GENDER = 'W'
ORDER BY MEMBER_ID ASC;
ORACLE
SELECT MP.MEMBER_ID, MP.MEMBER_NAME, MP.GENDER, TO_CHAR(MP.DATE_OF_BIRTH, 'YYYY-MM-DD')
FROM MEMBER_PROFILE MP
WHERE TO_CHAR(MP.DATE_OF_BIRTH, 'MM') = '03' AND MP.TLNO IS NOT NULL AND MP.GENDER = 'W'
ORDER BY MP.MEMBER_ID ASC