한 걸음씩
[프로그래머스][MySQL] 12세 이하인 여자 환자 목록 출력하기 본문
https://school.programmers.co.kr/learn/courses/30/lessons/132201
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
✅ 정답 코드
SELECT PT_NAME, PT_NO, GEND_CD, AGE,
CASE
WHEN TLNO IS NULL THEN 'NONE'
ELSE TLNO
END AS TLNO
FROM PATIENT
WHERE GEND_CD = 'W' AND AGE <= 12
ORDER BY AGE DESC, PT_NAME;
전체 코드 해석 ▼
PATIENT 테이블에서
GEND_CD 칼럼이 'w'이고 AGE 칼럼이 12 이하인 부분만
PT_NAME, PT_NO, GEND_CD, AGE, TLNO(case구문은 아래에서 해석)만 출력하는데
AGE칼럼은 내림차순으로 정렬하고 AGE칼럼이 동일할 경우 PT_NAME칼럼을 내림차순으로 정렬해 줘
✅ 체크 포인트
CASE
WHEN TLNO IS NULL THEN 'NONE'
ELSE TLNO
END AS TLNO
CASE 구문 코드 해석 ▼
TLNO 칼럼이 NULL이면 'NONE'으로 표시하고
아니라면 TLNO 칼럼 그대로 출력하는데
칼럼명은 TLNO로
# CASE 사용법
CASE
WHEN 조건1 THEN '반환 값1'
WHEN 조건2 THEN '반환 값2'
ELSE 'WHEN 조건에 해당 안되는 경우 반환 값'
END AS '칼럼에 표시할 별칭'
- 조건1이 TRUE면 '반환 값 1'을 돌려주고
- 조건 2가 TRUE면 '반환 값 2'를 돌려주고
- 두 조건 FALSE면 ELSE 구문 실행
- 만약에 ELSE 구문이 없다면 NULL 반환
'Programmers' 카테고리의 다른 글
[프로그래머스][MySQL] 자동차 대여 기록에서 장기/단기 대여 구분하기 (0) | 2023.02.20 |
---|---|
[프로그래머스][MySQL] 평균 일일 대여 요금 구하기 (0) | 2023.02.20 |
[프로그래머스][MySQL] 흉부외과 또는 일반외과 의사 목록 출력하기 (0) | 2023.02.20 |
[프로그래머스][MySQL] 조건에 맞는 회원수 구하기 (0) | 2023.02.20 |
[프로그래머스][MySQL] 경기도에 위치한 식품창고 목록 출력하기 (0) | 2023.02.20 |