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

ByungJik_Oh·2025년 8월 24일
0

[Programmers - SQL]

목록 보기
8/39
post-thumbnail

💡 문제

다음은 종합병원에 속한 의사 정보를 담은 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문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.


💭 접근

간단하게 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


profile
精進 "정성을 기울여 노력하고 매진한다"

0개의 댓글