[programmers] 흉부외과 또는 일반외과 의사 목록 출력하기 - MySQL
DOCTOR 테이블에서 흉부외과(CS) 또는 일반외과(GS)의 의사 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성하는 문제입니다. 결과는 고용일자를 기준으로 내림차순 정렬하며, 고용일자가 같다면 이름을 기준으로 오름차순 정렬합니다. DATE_FORMAT(date 값, '%Y-%m-%d') 연산자를 통해 날짜 포맷을 원하는 형식으로 설정할 수 있습니다.
Jan 24, 2024
문제 설명
다음은 종합병원에 속한 의사 정보를 담은
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문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.예시
DOCTOR 테이블이 다음과 같을 때| DR_NAME | DR_ID | LCNS_NO | HIRE_YMD | MCDP_CD | TLNO | 
| 루피 | DR20090029 | LC00010001 | 2009-03-01 | CS | 01085482011 | 
| 패티 | DR20090001 | LC00010901 | 2009-07-01 | CS | 01085220122 | 
| 뽀로로 | DR20170123 | LC00091201 | 2017-03-01 | GS | 01034969210 | 
| 티거 | DR20100011 | LC00011201 | 2010-03-01 | NP | 01034229818 | 
| 품바 | DR20090231 | LC00011302 | 2015-11-01 | OS | 01049840278 | 
| 티몬 | DR20090112 | LC00011162 | 2010-03-01 | FM | 01094622190 | 
| 니모 | DR20200012 | LC00911162 | 2020-03-01 | CS | 01089483921 | 
| 오로라 | DR20100031 | LC00010327 | 2010-11-01 | OS | 01098428957 | 
| 자스민 | DR20100032 | LC00010192 | 2010-03-01 | GS | 01023981922 | 
| 벨 | DR20100039 | LC00010562 | 2010-07-01 | GS | 01058390758 | 
SQL을 실행하면 다음과 같이 출력되어야 합니다.
| DR_NAME | DR_ID | MCDP_CD | HIRE_YMD | 
| 니모 | DR20200012 | CS | 2020-03-01 | 
| 뽀로로 | DR20170123 | GS | 2017-03-01 | 
| 벨 | DR20100039 | GS | 2010-07-01 | 
| 자스민 | DR20100032 | GS | 2010-03-01 | 
| 패티 | DR20090001 | CS | 2009-07-01 | 
| 루피 | DR20090029 | CS | 2009-03-01 | 
주의사항
날짜 포맷은 예시와 동일하게 나와야합니다.
solution.sql
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;핵심 키워드
- DATE_FORMAT(date 값, '%Y-%m-%d') 메소드를 통해 날짜 포맷을 원하는 형식으로 설정할 수 있다.
결론!
해당 문제를 통해 date_format() 메소드를 이용해서 날짜 형식을 변경하는 법을 알 수 있었다.
Share article