SQL 고득점 Kit: 흉부외과 또는 일반외과 의사 목록 출력하기
Reference: https://school.programmers.co.kr/learn/courses/30/lessons/132203다음은 종합병원에 속한 의사 정보를 담은 DOCTOR 테이블입니다. DOCTOR 테이블은 다음과 같으며 DR_NAME, DR_
Reference: 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 name | Type | Nullable | | :-: | :-: | :-: | | DR_NAME | VARCHAR(20) | FALSE | | DR_ID | VARCHAR(10) | FALSE | | LCNS_NO | VARCHAR(30) | FALSE | | HIRE_YMD | DATE | FALSE | | MCDP_CD | VARCHAR(6) | TRUE | | TLNO | VARCHAR(50) | TRUE |
문제 ✅
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 |
SQL을 실행하면 다음과 같이 출력되어야 합니다.
| 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 |
⚠️ 날짜 포맷은 예시와 동일하게 나와야 합니다.
통과한 코드 ✅
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;보충 ✅
최근까지 학습한 내용을 복습해 보라고 배치한 문제가 아닐까 생각이 들 정도로 쉬운 문제였습니다. 다만, MCDP_CD = 'CS' OR MCDP_CD = 'GS' 부분을 개선하여 다음과 같이 코드를 작성할 수 있습니다.
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;IN 연산자를 통해, 조건을 더 간결하고 읽기 쉽게 수정할 수 있습니다. 여러 개의 OR 조건을 하나로 묶어주는 역할을 하는 것이 IN 연산자라고 이해하시면 좋습니다.
More to read
프론트엔드와 백엔드 사이
HTTP 상태 코드는 프론트엔드에서 백엔드로 보냈던 요청의 수행 결과를 의미하는 일종의 약속이며, API를 구성하는 핵심 요소 중 하나입니다. 상태 코드와 관련하여, 백엔드는 잘 모르는 프론트엔드의 슬픈 사정이 있습니다.아래는 요청이 실패했음에도, 백엔드에서 상태 코드
JWT토큰 관리 방식 톺아보기
0. 들어가며 🎯 서비스에 접근하려는 사용자가 누구인지 확인하는 과정을 사용자 인증이라고 합니다. 인증된 사용자에게 주어진 권한을 확인하는 작업은 인가라고 부릅니다. 이번 글에서는 인가는 다루지 않습니다. 사용자 인증에는 많은 방식이 있지만, 오늘은 세션 인증 방
A2AA2A / MCP 멀티 에이전트 오케스트레이션
0. 들어가며 ✍️ Google for Developers에, 레스토랑 공급망 시나리오로 엮은 6대 프로토콜(MCP, A2A, UCP, AP2, A2UI, AG-UI)에 대한 가이드가 게시된 이후, MCP와 A2A부터 구현해 보는 것이 좋을 것 같다는 생각이 들었습니