https://school.programmers.co.kr/learn/courses/30/lessons/132203
코드설명
SELECT + DATE_FORMAT + IN 을 활용하는 문제입니다.
SQL 쿼리는 특정 의료 과(MCDP_CD)에 속하는 의사들의 정보를 가져와서 고용 날짜(HIRE_YMD)를 내림차순으로 정렬하여 출력하는 것입니다. 아래는 쿼리의 로직을 설명합니다:
- SELECT 문:
- DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d'): 의사 이름, 의사 ID, 의료 과 코드, 고용 날짜를 선택합니다. DATE_FORMAT 함수를 사용하여 고용 날짜를 원하는 형식으로 변환합니다.
- FROM 문:
- FROM DOCTOR: DOCTOR 테이블에서 데이터를 가져옵니다.
- WHERE 문:
- WHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS': 의료 과 코드가 'CS' 또는 'GS'인 의사들을 필터링합니다.
- ORDER BY 문:
- ORDER BY HIRE_YMD DESC: 고용 날짜를 내림차순으로 정렬합니다. 즉, 가장 최근에 고용된 의사가 먼저 나오도록 합니다.
코드
SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d')
FROM DOCTOR
WHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS'
ORDER BY HIRE_YMD DESC
IN을 활용한 코드입니다.
SELECT
DR_NAME,
DR_ID,
MCDP_CD,
DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMD
FROM DOCTOR
WHERE MCDP_CD IN ('CS', 'GS')
ORDER BY HIRE_YMD DESC, DR_NAME ASC;
SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD,'%Y-%m-%d')
FROM DOCTOR
WHERE MCDP_CD IN ('CS', 'GS')
ORDER BY HIRE_YMD DESC, DR_NAME ASC;