Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자동증가열
- oracle
- HTML
- VMWare
- 오라클
- ASP
- mysql
- javascript
- 가상머신
- SQL
- mssql
- 트리플DES
- CrossSiteScripting
- 람다식함수
- ascx.cs
- db
- 다중기본키
- 데이터베이스
- 스프링부트
- 프로그래머스
- 자바스크립트
- windows7
- memoryDB
- PHP
- 다중pk
- 이미지엑박
- C#
- 쿼리
- 코딩테스트
- springboot
Archives
- Today
- Total
개발바닥 아방수
[SELECT] 흉부외과 또는 일반외과 의사 목록 출력하기 본문
문제 설명
다음은 종합병원에 속한 의사 정보를 담은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 |
주의사항
날짜 포맷은 예시와 동일하게 나와야합니다.
답안
select dr_name, dr_id, mcdp_cd, to_char(hire_ymd, 'yyyy-mm-dd') from doctor
where mcdp_cd in ('CS', 'GS')
order by hire_ymd desc, dr_name asc;
- 날짜 포맷을 유의해야 하는 문제였다. to_char, to_date 함수를 기억할 것
- CS나 GS인 mcdp_cd가 포함되어야 하는 조건은 mcdp_cd = 'CS' or mcdp_cd = 'GS' 보다는 in 함수를 써주는 것이 좋다. in의 경우 둘중 하나가 포함되어 있다면, not in은 둘다 포함되어 있지 않다면에 해당한다.
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[GROUP BY] 성분으로 구분한 아이스크림 총 주문량 (0) | 2022.12.08 |
---|---|
[GROUP BY] 진료과별 총 예약 횟수 출력하기 (0) | 2022.12.08 |
[SELECT] 인기있는 아이스크림 (1) | 2022.12.08 |
[SUM, MAX, MIN] 가장 비싼 상품 구하기 (0) | 2022.12.08 |
[SELECT] 과일로 만든 아이스크림 고르기 (0) | 2022.12.07 |