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

Eunding·2024년 2월 9일
0

SQL 고득점 Kit

목록 보기
4/62

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

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월에 태어난 여성 회원 목록 출력하기

profile
안녕하세요~

0개의 댓글

관련 채용 정보