반응형
문제
흉부외과 또는 일반외과 의사 목록 출력하기
다음과 같은 결과가 출력되어야 한다.
문제 풀이 과정
1. 의사이름, 의사 ID, 진료과, 고용일자를 조회한다. (SELECT)
2. 진료과가 흉부외과(CS) 혹은 일반외과(GS)여야 한다. (OR, IN)
3. 고용일자를 기준으로 내림차 정렬하되, 고용일자가 같다면 이름을 기준으로 오름차 정렬한다. (고용일자 DESC, 이름 ASC)
4. 고용일자는 yyyy-mm-dd 형식으로 출력한다. (DATE_FORMAT (고용일자, '%Y-%m-%d')
SQL 코드 1 - OR 활용
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 ASC;
SQL 코드 2 - IN 활용
SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD,'%Y-%m-%d') AS HIRE_YMD FROM DOCTOR
WHERE MCDP_CD IN('CS','GS')
ORDER BY HIRE_YMD DESC, DR_NAME ASC;
실행결과
회고
조건이 여러 개인데 그중 하나의 조건이 만족되는 데이터를 출력하라 했을 때, (=혹은) 쓸 수 있는 방법은 두 가지 정도가 생각났다.
1.WHERE 컬럼 A OR B : 컬럼에서 A 혹은 B인 값 반환
2. WHERE 컬럼 IN (A , B) : 컬럼에서 A, B 중에서 일치하는 것이 있으면 반환
데이터 포맷 형식이 한 번에 잘 생각이 나진 않는 것 같다. yyyy-mm-dd 형식이니까 냅다 'yyyy-mm-dd'부터 적어버리는 행동... 전에 내 블로그에 정리해 뒀던 것을 또 읽었다.
[SQL/프로그래머스] 3월에 태어난 여성 회원 목록 출력하기 (SELECT #1)
반응형
'🍅 Learning > SQL' 카테고리의 다른 글
[SQL/프로그래머스] 평균 일일 대여요금 구하기 (SELECT #6) (0) | 2023.03.30 |
---|---|
[SQL/프로그래머스] 12세 이하인 여자 환자 목록 출력하기 (SELECT #4) (0) | 2023.03.28 |
[SQL/프로그래머스] 모든 레코드 조회하기 (SELECT #3) (0) | 2023.03.27 |
[SQL/프로그래머스] 강원도에 위치한 생산공장 목록 출력 (SELECT #2) (0) | 2023.03.26 |
[SQL/프로그래머스] 3월에 태어난 여성 회원 목록 출력하기 (SELECT #1) (0) | 2023.03.25 |