SQL/MY SQL 문제 풀이(프로그래머스)

[MYSQL] PROGRAMMERS_흉부외과 또는 일반외과 의사 목록 출력하기

SQL공부 2024. 2. 20. 23:38
반응형

SELECT DR_NAME,	DR_ID,	MCDP_CD,DATE_FORMAT(HIRE_YMD,'%Y-%m-%d')
FROM DOCTOR
WHERE 1=1
AND MCDP_CD = "CS" 
OR MCDP_CD = "GS" 
ORDER BY HIRE_YMD desc, DR_NAME

 

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

 

흉부외과 또는 일반외과를 조회하는 데이터를 구하고 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해야하는 문제이다.

 

흉부외과는 CS 일반 외과는 GS로 두가지를 OR 조건으로 조회 해야한다. 따라서 WHERE 조건절에서 CS와 GS를 OR로 조회 해 주었다.

OR 조건문의 다른 방식은 IN ("CS","GS") 의 방법도 있다. 

ORDER BY 절에서 내림차순의 경우 desc를 컬럼명 뒤에 붙여주고 뒤에 오름차순은 default 값으로 따로 입력하지 않았다.

 

날짜의 형식도 일치하게 맞추어 주어야 하는데 대문자 Y의 경우 년도 1993 형식으로 4자가 다 나오게 m의 경우 09 형식으로 2자리로 나오게 d도 마찬가지로 09 형식으로 1993-09-09 의 형식이 나오게 DATE_FORMAT 함수를 사용하여 맞추어 주었다.

반응형