Lv1 - 흉부외과 or 일반외과 의사 목록 출력하기

2025. 7. 15. 21:20·CODING TEST/MySQL

📌 문제 정보

- 문제 이름 : 프로그래머스 - (SELECT) 흉부외과 or 일반외과 의사 목록 출력하기

- 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/132203

 

 

📌 문제 요약

- DOCTOR 테이블 : DR_NAME(의사이름), DR_ID(의사ID), LCNS_NO(면허번호), HIRE_YMD(고용일자), MCDP_CD(진료과코드), TLNO(전화번호)

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

 

예시) DOCTOR 테이블이 다음과 같을 때 

DR_NAME DR_ID LCNS_NO HIRE_YMD MCDP_CD TLNO
루피 DR20090029 LC00010001 2009-03-01 CS 01085482011
패티 DR20090001 LC00010901 2009-07-01 CS 01085220122
뽀로로 DR20170123 LC00091201 2017-03-01 GS 01034969210
티거 DR20100011 LC00011201 2010-03-01 NP 01034229818
품바 DR20090231 LC00011302 2015-11-01 OS 01049840278
티몬 DR20090112 LC00011162 2010-03-01 FM 01094622190
니모 DR20200012 LC00911162 2020-03-01 CS 01089483921
오로라 DR20100031 LC00010327 2010-11-01 OS 01098428957
자스민 DR20100032 LC00010192 2010-03-01 GS 01023981922
벨 DR20100039 LC00010562 2010-07-01 GS 01058390758

 

출력)

DR_NAME DR_ID MCDP_CD HIRE_YMD
니모 DR20200012 CS 2020-03-01
뽀로로 DR20170123 GS 2017-03-01
벨 DR20100039 GS 2010-07-01
자스민 DR20100032 GS 2010-03-01
패티 DR20090001 CS 2009-07-01
루피 DR20090029 CS 2009-03-01

 

 

 

📌 내 풀이 및 코드

#의사의 이름, 의사ID, 진료과, 고용일자를 조회
SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMD
FROM DOCTOR 							# DOCTOR 테이블에서
WHERE MCDP_CD IN ('CS', 'GS')			# 의사 이름이 흉부외과(CS)이거나 일반외과(GS)인
ORDER BY HIRE_YMD DESC, DR_NAME ASC;	# 고용일자를 기준 내림차순 정렬, 고용일자가 같다면 이름 기준 오름차순

 



📌 새로 배운 문법

<-- 이번 문제에서 새로 배운 Java 문법 정리 -->

** IN 연산 **

- 해당 열의 값이 지정된 여러 값 중 하나와 일치하는지를 확인할 때, 조건절에 사용

컬럼명 IN (값1, 값2, 값3, ...)

## 예시
WHERE MCDP_CD IN ('CS', 'GS')

## 동일 조건을 OR로 쓰면?
WHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS'

 

** DATE_FORMAT **

- 날짜값을 원하는 형식의 문자열로 바꿔주는 함수로 MySQL에서 주로 사용됨.

DATE_FORMAT(날짜컬럼, '형식')

## 예시
DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMD
형식  코드 의미 예시
%Y 연도 (4자리) 2025
%y 연도 (2자리) 25
%m 월 (2자리) 07
%d 일 (2자리) 15

'CODING TEST > MySQL' 카테고리의 다른 글

Lv1 - 평균 일일 대여 요금 구하기  (0) 2025.07.16
Lv1 - 잡은 물고기 중 가장 큰 물고기의 길이 구하기  (0) 2025.07.16
Lv1 - 조건에 맞는 도서 리스트 출력하기  (0) 2025.07.16
Lv1 - 12세 이하인 여자 환자 목록 출력하기  (0) 2025.07.16
Lv1 - 조건에 맞는 회원수 구하기  (0) 2025.07.15
'CODING TEST/MySQL' 카테고리의 다른 글
  • Lv1 - 잡은 물고기 중 가장 큰 물고기의 길이 구하기
  • Lv1 - 조건에 맞는 도서 리스트 출력하기
  • Lv1 - 12세 이하인 여자 환자 목록 출력하기
  • Lv1 - 조건에 맞는 회원수 구하기
iamyuunzo
iamyuunzo
https://github.com/iamyuunzo
  • iamyuunzo
    iamyuunzo
    iamyuunzo
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • Study (5)
        • App Developer (0)
        • Algorithm study (0)
        • Google AI Essentials (3)
      • Project (3)
        • 감행 (3)
        • Tokkit (0)
        • 다시, 봄 (0)
        • Clone Coding (0)
      • 자격증 모음 (5)
        • AWS Certification (1)
        • 정보처리기사 (0)
        • 빅데이터분석기사 (1)
        • TOEIC Speaking (3)
      • CODING TEST (79)
        • baekjoon (26)
        • programmers (20)
        • MySQL (31)
        • COS Pro (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    프로젝트 리팩토링
    백준
    toeic speaking
    COS Pro
    AWS Certification
    SQL
    AWS Certified Cloud Practitioner
    회고
    토익 스피킹
    감행
    baekjoon
    우리 fisa
    CLF-C02
    우리fis아카데미
    프로그래머스
    클라우드서비스개발
    java
    우리fisa
    Programmers
    회고록
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
iamyuunzo
Lv1 - 흉부외과 or 일반외과 의사 목록 출력하기
상단으로

티스토리툴바