[SQL] Programers SELECT 문제 풀이 3번 (MySQL IFNULL 함수)

juyeon lee·2024년 1월 9일

SQL TEST

목록 보기
3/8

프로그래머스 SQL 고득점 Kit

🖥️SELECT 3번

12세 이하인 여자 환자 목록 출력하기


🔹문제
PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요.

🗝️정답

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

💡오답 노트
1. 12세 이하인 '여자 환자'
WHERE 조건절에 성별 조건을 지정하지 않아 오답 처리
➡️ 빠트린 조건이 있을 수 있으니 문제를 잘 읽자..


📖IFNULL 함수

MySQL에서 Column의 값이 Null인 경우를 처리해주는 함수들은 IFNULL, CASE, COALESCE과 같은 함수들이 있다.

해당 Column의 값이 NULL을 반환할 때, 다른 값으로 출력할 수 있도록 하는 함수

  • 기본 구조
    SELECT IFNULL(Column명, "NULL인 경우 대체값") FROM 테이블명;

  • 예시
    IFNULL(A,B)
    ➡️ A가 NULL이면 B가 출력, NULL이 아니면 A 그대로 출력

  • NULLIF 함수와 다른가?
    이름이 비슷해 헷갈릴 수 있지만 의미가 완전 다르다!!
    NULLIF 함수는 괄호 안 표현식1과 표현식2가 같으면 NULL, 같지 않으면 표현식1을 리턴한다

두 표현식이 동일한지에 대한 함수는 NULLIF
열에 대한 값이 NULL인지에 대한 함수는 IFNULL

0개의 댓글