문제
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문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.
코드
SELECT DR_NAME, DR_ID, MCDP_CD, LEFT(HIRE_YMD, 10) AS HIRE_YMD
FROM DOCTOR
WHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS'
ORDER BY HIRE_YMD DESC, DR_NAME ASC
설명
FROM
DOCTOR 테이블의 전체 데이터를 가져온다.
WHERE
진료과 코드가 CS거나 GS인 데이터만 가져온다.
SELECT
그 중 의사이름, 의사아이디, 진료과코드, 고용일자 컬럼을 선택한다. 이 중 고용일자는 문제의 조건에 따라 LEFT 함수를 활용해 YYYY-MM-DD 형식으로 출력한다.
ORDER BY
이렇게 가져온 데이터를 고용일자 내림차순, 의사 이름 오름차순으로 정렬해 출력한다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스/SQL] Lv.1 - 12세 이하인 여자 환자 목록 출력하기 (0) | 2025.01.11 |
---|---|
[프로그래머스/SQL] Lv.1 - 강원도에 위치한 생산공장 목록 출력하기 (0) | 2025.01.10 |
[프로그래머스/SQL] Lv.1 - 과일로 만든 아이스크림 고르기 (0) | 2025.01.10 |
[프로그래머스/JAVA] Lv.0 - 제곱수 판별하기 (0) | 2025.01.09 |
[프로그래머스/SQL] Lv.2 - 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2025.01.09 |