[프로그래머스][LV.1] 흉부외과 또는 일반외과 의사 목록 출력하기 | Oracle
2025. 3. 18. 16:31ㆍ프로그래머스/SQL
문제링크: 흉부외과 또는 일반외과 의사 목록 출력하기
문제설명
다음은 종합병원에 속한 의사 정보를 담은DOCTOR 테이블입니다. DOCTOR 테이블은 다음과 같으며 DR_NAME, DR_ID, LCNS_NO, HIRE_YMD, MCDP_CD, TLNO는 각각 의사이름, 의사ID, 면허번호, 고용일자, 진료과코드, 전화번호를 나타냅니다.
문제
DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.
문제풀이
문제에 쓰인 기본 문법 정리
1. SELECT (데이터 조회)
- 테이블에서 특정 컬럼을 선택하여 조회할 때 사용
SELECT 컬럼1, 컬럼2, ... FROM 테이블명;
- 예시:
SELECT DR_NAME, DR_ID FROM DOCTOR;
2. FROM (테이블 지정)
- 데이터를 가져올 테이블을 지정
FROM 테이블명
- 예시:
SELECT * FROM PATIENT;
3. WHERE (조건 지정)
- 특정 조건을 만족하는 행만 필터링
WHERE 컬럼명 비교연산자 값
- 예시:
SELECT * FROM DOCTOR WHERE MCDP_CD = 'CS';
4. OR (조건 중 하나라도 만족)
- 여러 조건 중 하나라도 만족하면 행을 선택
WHERE 조건1 OR 조건2
- 예시:
SELECT * FROM DOCTOR WHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS';
5. ORDER BY (정렬)
- 결과를 특정 컬럼 기준으로 정렬
ORDER BY 컬럼명 [ASC | DESC]
- 예시:
SELECT * FROM DOCTOR ORDER BY HIRE_YMD DESC;
6. DESC (내림차순 정렬)
- 큰 값 → 작은 값 순으로 정렬
ORDER BY 컬럼명 DESC
- 예시:
SELECT * FROM DOCTOR ORDER BY HIRE_YMD DESC;
7. ASC (오름차순 정렬)
- 작은 값 → 큰 값 순으로 정렬 (기본값)
ORDER BY 컬럼명 ASC
- 예시:
SELECT * FROM DOCTOR ORDER BY DR_NAME ASC;
8. TO_CHAR (날짜/숫자 형식 변환)
- 숫자 또는 날짜 데이터를 문자열로 변환
TO_CHAR(컬럼명, '형식')
- 예시 (날짜 변환):
SELECT TO_CHAR(HIRE_YMD, 'YYYY-MM-DD') FROM DOCTOR;
- 예시 (숫자 변환):
SELECT TO_CHAR(SALARY, '999,999') FROM EMPLOYEE;
9. AS (별칭 지정)
- 컬럼 또는 테이블에 별칭을 부여하여 가독성 향상
컬럼명 AS 별칭
- 예시:
SELECT TO_CHAR(HIRE_YMD, 'YYYY-MM-DD') AS HIRE_DATE FROM DOCTOR;
나의코드
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 ASC;
더보기
참고하기
'프로그래머스 > SQL' 카테고리의 다른 글
[프로그래머스][LV.2] 업그레이드 된 아이템 구하기 | python3 (0) | 2025.03.25 |
---|---|
[프로그래머스][LV.2] 재구매가 일어난 상품과 회원 리스트 구하기 | Oreacle (0) | 2025.03.22 |
[프로그래머스][LV.3] 과일로 만든 아이스크림 고르기 | Oracle (0) | 2025.03.22 |
[프로그래머스][LV.1] 조건에 맞는 도서 리스트 출력하기 | Oracle (0) | 2025.03.20 |
[프로그래머스][LV.2] 3월에 태어난 여성 회원 목록 출력하기 | Oracle (0) | 2025.03.19 |