[SQL - 코딩테스트] NULL 처리하기

sohee jung·2022년 9월 26일
0

SQL

목록 보기
3/4

문제


코드

SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') AS NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID

IFNULL

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

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

IF()??

Null 처리는 사실 IF 함수와 IS NULL 조건으로도 가능하다.

// NAME Column이 NULL이 True인 경우 "No name"을, False인 경우는 NAME Column을 출력
SELECT IF(IS NULL(NAME), "No name", NAME) as NAME
FROM ANIMAL_INS
!! MS-SQL의 ISNULL()과는 다르다.

CASE

해당 Column 값을 조건식을 통해 True, False를 판단하여 조건에 맞게 Column값을 변환할 때 사용하는 함수이다.

기본 구조

CASE 
    WHEN 조건식1 THEN1
    WHEN 조건식2 THEN2
    ...
    ELSE 조건에 맞는경우가 없는 경우 실행할 식
END
// NAME Column의 IS NULL 조건이 True인 경우 "No name" 출력
// WHEN 조건들에 True인 조건이 없을 경우 ELSE 문을 통해 NAME Column의 값 출력
// END 이후 그 Column의 별칭을 NAME으로 지정
SELECT 
    CASE
        WHEN NAME IS NULL THEN "No name"
        ELSE NAME
    END as NAME
FROM ANIMAL_INS

COALESCE

COALESCE는 지정한 표현식들 중에 NULL이 아닌 첫 번째 값을 반환한다.

  • 모든 DBMS에서 사용가능
  • 표현식은 여러 항목 지정이 가능하고, 처음으로 만나는 NULL이 아닌 값을 출력한다.
  • 표현식이 모두 NULL일 경우엔 결과도 NULL 반환
기본 구조
// NULL 처리 상황
SELECT COALESCE(Column1, Column1NULL인 경우 대체할 값)
FROM 테이블명
profile
짱이 될거야

0개의 댓글