
다음은 종합병원에 속한 의사 정보를 담은 DOCTOR 테이블입니다. DOCTOR 테이블은 다음과 같으며 DR_NAME, DR_ID, LCNS_NO, HIRE_YMD, MCDP_CD, TLNO는 각각 의사이름, 의사ID, 면허번호, 고용일자, 진료과코드, 전화번호를 나타냅니다.
| Column name | Type | Nullable |
|---|---|---|
| DR_NAME | VARCHAR(20) | FALSE |
| DR_ID | VARCHAR(10) | FALSE |
| LCNS_NO | VARCHAR(30) | FALSE |
| HIRE_YMD | DATE | FALSE |
| MCDP_CD | VARCHAR(6) | TRUE |
| TLNO | VARCHAR(50) | TRUE |
DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.
간단하게 WHERE 절을 사용하여 MCDP_CD가 'CS' 또는 'GS'인 행을 조회해주면 된다.
이때, 주의해야 할 것으론 날짜 포맷이 YYYY-mm-dd 형식으로 출력되어야 하므로 DATE_FORMAT() 함수를 사용하여 출력 시 날짜 형식을 변경해주어야 한다.
(변경해주지 않으면 시, 분, 초까지 모두 출력되어 오답 처리될 수 있다.)
# OR 사용
SELECT DR_NAME
,DR_ID
,MCDP_CD
,DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMD
FROM DOCTOR
WHERE MCDP_CD = 'CS'
OR MCDP_CD = 'GS'
ORDER
BY HIRE_YMD DESC
,DR_NAME ASC;
# 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;
DATE_FORMAT() 함수를 사용해보는 간단한 문제였다.
https://school.programmers.co.kr/learn/courses/30/lessons/132203