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

당당·2023년 6월 1일
0

프로그래머스

목록 보기
162/245

https://school.programmers.co.kr/learn/courses/30/lessons/132203

📔문제

다음은 종합병원에 속한 의사 정보를 담은 DOCTOR 테이블입니다. DOCTOR 테이블은 다음과 같으며 DR_NAME, DR_ID, LCNS_NO, HIRE_YMD, MCDP_CD, TLNO는 각각 의사이름, 의사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

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


🧮분야

  • SELECT

📃SQL 코드

select dr_name, dr_id, mcdp_cd, to_char(hire_ymd,'YYYY-MM-DD') hire_ymd
from doctor
where mcdp_cd in ('CS', 'GS')
order by hire_ymd desc, dr_name;

📰출력 결과


📂고찰

일단 mcdp_cdCS또는 GS이어야 하니 IN을 이용해서 where절에 조건을 줬다.
그리고 고용일자를 기준으로 내림차순, 이름 기준으로 오름차순을 했다.

출력 날짜는 YYYY-MM-DD와 같은 식으로 출력해야하기 때문에 TO_CHAR()를 이용해서 date타입을 char로 명시적 형변환해주었다.

profile
MySQL DBA 신입 지원

0개의 댓글