코딩 테스트/SQL

흉부외과 또는 일반외과 의사 목록 출력하기

susinlee 2024. 12. 10. 08:50

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


[단계별 풀이]
1. 테이블에서 진료과과 CS이거나 GS인 행을 필터링한다

2. 의사의 이름, 의사ID, 진료과, 고용일자를 선택한다

3. 고용일자의 날짜 포맷이 다르다면 맞춰준다

4. 고용일자를 기준으로 내림차순 정렬하고, 이름 기준으로 오름차순 정렬한다




[정답]

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