본문 바로가기
프로그래머스/SQL

[프로그래머스/Oracle] 12세 이하인 여자 환자 목록 출력하기

by 유지낭 2024. 4. 10.

프로그래머스 코딩테스트 연습 > SELECT > 12세 이하인 여자 환자 목록 출력하기
난이도 : Level 1


문제

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 AGE <= 12
   AND GEND_CD = 'W'
 ORDER BY AGE DESC, PT_NAME

CASE 문을 사용하여 TLNO이 NULL일 때 'NONE'을 NULL이 아닐 때 TLNO이 출력되도록 작성하였는데

SELECT PT_NAME
     , PT_NO
     , GEND_CD
     , AGE
     , NVL(TLNO,'NONE') AS TLNO
  FROM PATIENT
 WHERE AGE <= 12
   AND GEND_CD = 'W'
 ORDER BY AGE DESC, PT_NAME

NVL 메소드를 사용하여도 동일한 결과를 확인할 수 있습니다.

NVL(expr1, expr2)

  expr1이 NULL이면 expr2를 return 합니다.

https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/NVL.html

 

SQL Language Reference

 

docs.oracle.com

SELECT PT_NAME
     , PT_NO
     , GEND_CD
     , AGE
     , NVL2(TLNO,TLNO,'NONE') AS TLNO
  FROM PATIENT
 WHERE AGE <= 12
   AND GEND_CD = 'W'
 ORDER BY AGE DESC, PT_NAME

NVL2 메소드를 사용하여도 동일한 결과를 확인할 수 있습니다.

NVL2(expr1, expr2, expr3)

  expr1이 NULL이 아니면 expr2를 return 합니다.

  expr1이 NULL이면 expr3을 return 합니다.

https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/NVL2.html

 

SQL Language Reference

 

docs.oracle.com