SQL - Select - CASE WHEN

mrtorture·2023년 12월 4일

최초 23/12/04

https://school.programmers.co.kr/learn/courses/30/lessons/132201

문제 요약

PATIENT 테이블의 다음과 같이 주어짐
Column name Type Nullable
PT_NO VARCHAR(10) FALSE
PT_NAME VARCHAR(20) FALSE
GEND_CD VARCHAR(1) FALSE
AGE INTEGER FALSE
TLNO VARCHAR(50) TRUE
이때 12세 이하 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호 조회.
전화번호가 없는 경우 'NONE' 출력.
나이 기준 내림차순 정렬, 나이가 같다면 환자이름 기준 오름차순 정렬.

준비물

CASE WHEN 구문
NULL 관련 연산자
ORDER BY

구현

SELECT PT_NAME, PT_NO, GEN_CD, AGE, 
  CASE WHEN TLNO IS NULL THEN 'NULL'
  ELSE TLNO
  END
  AS TLNO
FROM PATIENT
WHERE AGE <= 12 AND GEND_CD = 'W'
ORDER BY AGE DESC, PT_NAME ASC;
profile
명확하게 생각하고 싶다

0개의 댓글