✅ Solution
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;
👉 문제 설명 및 제한 사항
- MEMBER_PROFILE 테이블
- MEMBER_ID : 회원 ID
- MEMBER_NAME : 회원 이름
- TLNO : 회원 연락처
- GENDER : 성별
- DATE_OF_BIRTH : 생년월일
- 생일이 3월인 여성 회원의 ID, 이름, 성별, 생년월일을 조회하는 SQL문
- 전화번호가 NULL인 경우는 출력대상에서 제외
- 결과는 회원ID를 기준으로 오름차순 정렬


👉 아이디어
- 전화번호를 제외한 ID, 이름, 성별, 생년월일만 조회하기 위해 SELECT FROM 문을 사용한다.
- 이때, 'YYYY-MM-DD' 형식으로 생년월일을 조회하기 위해 DATE_FORMAT(날짜, 형식) AS 문을 사용한다.
- 주어진 조건에 맞춰 정보를 조회하기 위해 조건들을 WHERE 절로 묶어준다.
- 3월인 여성 회원의 정보만 조회 : LIKE '%-03%' 과 gender = 'W'
- 전화번호 NULL 아닌 경우만 조회 : IS NOT NULL
- 회원 ID 기준으로 오름차순 정렬 : ORDER BY ~ ASC
✅ 기억해야 할 문법
✔️ DATE_FORMAT (날짜, 형식)
: 날짜를 지정한 형식으로 출력

SELECT DATE_FORMAT(NOW(),'%Y %M %d') AS DATE FROM DUAL
👉 2024 March 14
SELECT DATE_FORMAT(NOW(),'%Y년%m월%d일 %H시%i분%S초') AS DATE FROM DUAL
👉 2016년09월22일 17시00분05초
✔️ LIKE
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '특정 문자열%';
👉 특정 문자로 시작하는 데이터 검색
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '%특정 문자열';
👉 특정 문자로 끝나는 데이터 검색
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '%특정 문자열%';
👉 특정 문자를 포함하는 데이터 검색
SELECT 컬럼명 FROM 테이블명 WHERE not 컬럼명 LIKE '%특정 문자열%';
👉 특정 문자를 포함하지 않는 데이터 검색
✔️ ORDER BY
: ASC 키워드는 생략해도 기본 ASC 순 으로 정렬해준다❗️
: 컬럼명 대신 몇 번째 컬럼 인지를 적어도 정렬해준다❗️
SELECT * FROM 테이블명 ORDER BY 컬럼명 ASC;
👉 오름차순 (ABCD, 1234 순)
SELECT * FROM 테이블명 ORDER BY 컬럼명 DESC;
👉 내림차순 (DCBA, 4321 순)
SELECT * FROM 테이블명 ORDER BY 컬럼명1 ASC, 컬럼명2 DESC;
👉 컬럼명1 순으로 오름차순 정렬 후 그 다음 컬럼명2 순으로 내림차순 정렬
'알고리즘풀이 > 프로그래머스' 카테고리의 다른 글
| [Lv2.] 정렬 - H-Index (0) | 2024.03.19 |
|---|---|
| [Lv2.] 정렬 - 가장 큰 수 (0) | 2024.03.16 |
| [Lv1.] 완전탐색 - 모의고사 (0) | 2024.03.11 |
| [Lv2.] 완전탐색 - 소수 찾기 (0) | 2024.03.08 |
| [Lv2.] N개의 최소공배수 (0) | 2024.03.05 |