본문 바로가기

반응형

문제

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

구조

DR_NAME, DR_ID, LCNS_NO, HIRE_YMD, MCDP_CD, TLNO는 각각 의사이름, 의사ID, 면허번호, 고용일자, 진료과코드, 전화번호를 나타냅니다.

예시


완성된  쿼리

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

이전 시간에는 서브쿼리를 이용해서 정렬을 해줬지만 사실 정렬할 때 적어주는 순서로도 정렬할 수가 있습니다. 먼저 적어주는 Column을 우선적으로 정렬을 시도하며 그 Column값이 같은 경우 뒤에 적어준 Column을 기준으로 정렬을 시도합니다.

 

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/132203 

반응형
댓글