https://school.programmers.co.kr/learn/courses/30/lessons/132203
DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.
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;
1. 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사 조회
=> 조회할 때 OR을 쓰는 방법 IN을 쓰는 방법이 있다.
WHERE (MCDP_CD = 'CS') OR (MCDP_CD = 'GS')
WHERE MCDP_CD IN ("CS", "GS")
2. 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬
ORDER BY HIRE_YMD DESC, DR_NAME;
=>아래 두 문제에서 연습을 해서 바로 떠올랐다.
인기있는 아이스크림
12세 이하인 여자 환자 목록 출력하기
3. 고용일자 출력할 때 yyyy-mm-dd 형식
SELECT DATE_FORMAT(HIRE_YMD, "%Y-%m-%d")
=> 컬럼 형식이 DATE라면 형식을 DATE_FORMAT을 이용하여 형식을 지정할 수 있다.
DATE_FORMAT(컬럼명, "형식")
%Y : 연도 4자리
%m : 월 2자리
%d : 일 2자리
+) 참고 문제
3월에 태어난 여성 회원 목록 출력하기