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

Janet·2023년 2월 16일
0

Algorithm

목록 보기
4/314

문제 설명

다음은 종합병원에 속한 의사 정보를 담은DOCTOR 테이블입니다. DOCTOR 테이블은 다음과 같으며 DR_NAMEDR_IDLCNS_NOHIRE_YMDMCDP_CDTLNO는 각각 의사이름, 의사ID, 면허번호, 고용일자, 진료과코드, 전화번호를 나타냅니다.

Column nameTypeNullable
DR_NAMEVARCHAR(20)FALSE
DR_IDVARCHAR(10)FALSE
LCNS_NOVARCHAR(30)FALSE
HIRE_YMDDATEFALSE
MCDP_CDVARCHAR(6)TRUE
TLNOVARCHAR(50)TRUE

문제

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


예시

DOCTOR 테이블이 다음과 같을 때

DR_NAMEDR_IDLCNS_NOHIRE_YMDMCDP_CDTLNO
루피DR20090029LC000100012009-03-01CS01085482011
패티DR20090001LC000109012009-07-01CS01085220122
뽀로로DR20170123LC000912012017-03-01GS01034969210
티거DR20100011LC000112012010-03-01NP01034229818
품바DR20090231LC000113022015-11-01OS01049840278
티몬DR20090112LC000111622010-03-01FM01094622190
니모DR20200012LC009111622020-03-01CS01089483921
오로라DR20100031LC000103272010-11-01OS01098428957
자스민DR20100032LC000101922010-03-01GS01023981922
DR20100039LC000105622010-07-01GS01058390758

SQL을 실행하면 다음과 같이 출력되어야 합니다.

DR_NAMEDR_IDMCDP_CDHIRE_YMD
니모DR20200012CS2020-03-01
뽀로로DR20170123GS2017-03-01
DR20100039GS2010-07-01
자스민DR20100032GS2010-03-01
패티DR20090001CS2009-07-01
루피DR20090029CS2009-03-01

주의사항

날짜 포맷은 예시와 동일하게 나와야합니다.


문제 풀이 #1

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

문제 풀이 #2

SELECT DR_NAME
    , DR_ID
		, MCDP_CD
		, TO_CHAR(HIRE_YMD, 'YYY-MM-DD') AS HIRE_YMD
FROM DOCTOR
WHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS'
ORDER BY HIRE_YMD DESC, DR_NAME
profile
😸

0개의 댓글