코딩테스트/SQL 코딩테스트

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

배또가또 2023. 12. 13. 16:23

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


  • 문제 요구사항
    • DOCTOR테이블에서 진료과가 CS이거나 GS인 의사의 이름, 의사ID, 진료과, 고용일자를 조회
    • 고용일자를 기준으로 내림차순 정렬, 고용일자가 같다면 이름을 기준으로 오름차순 정렬
    • 날짜의 포맷은 예시와 동일하게 년-월-일로 조회

 

Oracle은 TO_CHAR()  MySQL은 DATE_FORMAT() 함수를 이용하여 포맷 지정(Reference)


1) Oracle

SELECT DR_NAME, 
       DR_ID, 
       MCDP_CD, 
       TO_CHAR(HIRE_YMD, 'YYYY-MM-DD') as HIRE_YMD
FROM DOCTOR 
WHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS'
ORDER BY HIRE_YMD DESC, DR_NAME;

 


2) MySQL

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;