[SQL] 프로그래머스 고득점 KIT (흉부외과 또는 일반외과 의사 목록 출력하기)

2023. 2. 18. 18:54SQL

< 한줄 요약 >

 

날짜 포맷을 맞출때는 DATE_FORMAT 함수를 사용합니다.


< 문제 >

DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.

 

< 요구사항 정리 >

-- 칼럼

1. 의사의 이름

2. 의사ID

3. 진료과

4. 고용일자

 

-- 제한 조건

1. 흉부외과 (CS) 이거나 일반외과 (GS) --> WHERE 문에서 in 연산자 이용해서 진료과 선택

2. 날짜 포맷 맞추기 --> SELECT 문에서 DATE_FORMAT(날짜, "날짜 문법") 으로 포맷 맞추기

3. 고용일자 기준 내림차순 정렬, 같으면 이름 오름차순 --> ORDER BY 문 이용하기

 

< 정답 코드 >

 

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