참치코더의 꿈 메모장

Oracle / 프로그래머스 - 흉부외과 또는 일반외과 의사 목록 출력하기 본문

Oracle

Oracle / 프로그래머스 - 흉부외과 또는 일반외과 의사 목록 출력하기

참치깡 2025. 9. 7. 17:54
728x90
1
2
3
4
SELECT DR_NAME AS DR_NAME, DR_ID, MCDP_CD, TO_CHAR(HIRE_YMD,'YYYY-MM-DD') AS HIRE_YMD 
FROM DOCTOR
WHERE MCDP_CD IN ('CS','GS')
ORDER BY HIRE_YMD DESC, DR_NAME ASC;
cs

 

- DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID,

  진료과, 고용일자를 조회하는 SQL문을 작성하는 문제이다.

- 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로

  오름차순 정렬해야 한다.

 

- 일단 DOCTOR 테이블에서 정보를 추출해야 하므로 FROM절에 DOCTOR 테이블을 사용했다.

 

- 문제에서 출력을 원하는 컬럼값 DR_NAME AS DR_NAME, DR_ID, MCDP_CD, HIRE_YMD을 선언 후

  고용일자는 특정한 형태(YYYY-DD-MM)로 출력을 하기 위해 TO_CHAR 메서드를 사용하여 

  작성한 패턴대로 해당 컬럼을 출력할 수 있게 작성하였다.

 

- WHERE절로는 MCDP_CD 값이 흉부외과거나 일반외과인 의사의 데이터를 뽑기 위한 조건으로

  걸어 주면 출력이 되고,

 

- ORDER BY를 사용하여 처음엔 고용일자를 기준으로 내림차순(DESC) 정렬하고, 고용일자가 같다면

  이름을 기준으로 오름차순(ASC) 하도록 명시적으로 작성을 해준다면 정답을 얻을 수 있다. ^^ 

 

출력되는 테이블 일부

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/132203/questions

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

728x90
Comments