1. 문제
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
PATIENT 테이블에서 12세 이하인 여자 환자의 환자이름(PT_NAME), 환자번호(PT_NO), 성별코드(GEND_CD), 나이(AGE), 전화번호(TLNO)를 조회하는 문제. 이때 전화번호가 없다면 'NONE'으로 출력하고 결과는 나이를 기준으로 내림차순 정렬하고, 나이가 같다면 환자이름을 기준으로 오름차순 정렬.
2. 풀이
- 12세 이하인 여자 환자 : WHERE age <= 12 AND gend_cd = 'W'
- 나이 기준 내림차순, 이름 기준 오름차순 : ORDER BY age DESC, pt_name
✏️ 정답 쿼리
SELECT pt_name,
pt_no,
gend_cd,
age,
CASE
WHEN tlno IS NULL THEN 'NONE'
ELSE tlno
END AS tlno
FROM patient
WHERE age <= 12
AND gend_cd = 'W'
ORDER BY age DESC, pt_name
=> 전화번호가 없다면 'NONE'을 출력해야 하므로 CASE ~ WHEN 사용
'[Programmers] > - SQL' 카테고리의 다른 글
[Oracle][Programmers] 조건에 맞는 회원수 구하기 (0) | 2025.05.24 |
---|---|
[Oracle][Programmers] 가장 비싼 상품 구하기 (0) | 2025.05.24 |
[Oracle][Programmers] 흉부외과 또는 일반외과 의사 목록 출력하기 (0) | 2025.05.24 |
[Oracle][Programmers] 인기있는 아이스크림 (0) | 2025.05.24 |
[Oracle][Programmers] 조건에 부합하는 중고거래 댓글 조회하기(Lv 1) (0) | 2025.05.23 |