📝 Language: Oracle
1
2
3
4
5
6
7
8
9
10
|
SELECT DR_NAME,
DR_ID,
MCDP_CD,
TO_CHAR(HIRE_YMD, 'YYYY-MM-DD') HIRE_YMD
FROM DOCTOR
WHERE MCDP_CD = 'CS'
OR MCDP_CD = 'GS'
ORDER BY HIRE_YMD DESC,
DR_NAME;
|
🙂 확인 사항
1. DOCTOR 테이블
2. 진료과가 흉부외과거나 일반외과
3. 의사 이름, 의사 ID, 진료과, 고용일자 조회
4. 고용일자 기준 내림차순 → 이름 기준 오름차순 정렬
😮 이 외의 풀이
1
2
3
4
5
6
7
8
9
|
SELECT DR_NAME,
DR_ID,
MCDP_CD,
TO_CHAR(HIRE_YMD, 'YYYY-MM-DD') HIRE_YMD
FROM DOCTOR
WHERE MCDP_CD IN ('CS', 'GS')
ORDER BY HIRE_YMD DESC,
DR_NAME;
|
⭐ OR 보다는 IN을 사용
1. IN은 서비쿼리를 사용하여 보다 유연한 확장이 가능
2. IN은 반드시 하나의 컬럼이 비교되어야 하므로 나중에 인덱스 구성에 대한 전략을 수립할 때 유리
3. 옵티마이저는 복잡한 OR에 매우 취약
🔗 소스 코드
GitHub
📚 참고 자료
'Computer > Algorithm_SQL' 카테고리의 다른 글
[Programmers] 과일로 만든 아이스크림 고르기 (Success) (0) | 2023.09.12 |
---|---|
[Programmers] 인기있는 아이스크림 (Success) (0) | 2023.09.11 |
[Programmers] 12세 이하인 여자 환자 목록 출력하기 (Success) (0) | 2023.09.09 |
[Programmers] 가장 비싼 상품 구하기 (Success) (0) | 2023.09.08 |
[Programmers] 조건에 맞는 회원수 구하기 (Success) (0) | 2023.09.07 |