프로그래머스 코딩테스트 연습 > 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
'프로그래머스 > SQL' 카테고리의 다른 글
[프로그래머스/Oracle] 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2024.04.16 |
---|---|
[프로그래머스/Oracle] 조건에 맞는 도서 리스트 출력하기 (0) | 2024.04.10 |
[프로그래머스/Oracle] 평균 일일 대여 요금 구하기 (0) | 2024.04.09 |
[프로그래머스/Oracle] 흉부외과 또는 일반외과 의사 목록 출력하기 (0) | 2024.04.08 |