춘식이2
업글이✧
춘식이2
전체 방문자
오늘
어제
  • 분류 전체보기
    • Data Analysis
    • Python
    • SQL
    • Statistics

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Jupyter
  • coalesce
  • ifnull
  • 데이터디스커버리
  • sql튜닝
  • SQL
  • window함수
  • uv
  • hackerrank
  • pv
  • excel
  • rank함수
  • 장바구니분석
  • NULL
  • Python
  • Codility
  • Apriori
  • 데이터분석
  • NVL
  • python3

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
춘식이2
SQL

[SQL] NULL처리 (IFNULL, NVL, ISNULL, COALESCE, NULLIF )

SQL

[SQL] NULL처리 (IFNULL, NVL, ISNULL, COALESCE, NULLIF )

2022. 9. 29. 16:24

오늘은 SQL에서의 다양한 Null처리 함수를 살펴보겠습니다 ~~ ✨

DBMS별로 지원하는 함수가 다르니, 필요한 함수를 잘 외워놓는게 중요할것같아요~~

 

 


먼저, IFNULL, NVL, ISNULL은 다 같은 함수입니다!

Null값을 다른 대체값으로 반환하는 함수에요~

단, DBMS별로 사용하는 함수가 다릅니다! -> MySQL , Oracle, MS SQL 별로 각각 어떤 함수인지 볼까요?

 

IFNULL (MySQL)

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

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

NVL  (Oracle)

* NVL 또는 ISNULL(표현식1, 표현식2) : 표현식1 의 결과값이 NULL 이면 표현식2의 값을 출력

SELECT NVL(표현식1, "Null일 경우 대체 값") 
FROM 테이블명;

ISNULL (MS SQL)

* NVL 또는 ISNULL(표현식1, 표현식2) : 표현식1 의 결과값이 NULL 이면 표현식2의 값을 출력

SELECT ISNULL(표현식1, "Null일 경우 대체 값") 
FROM 테이블명;

다음은 COALESCE에요, 

Null을 대체할떄 사용하기도하고, 

Null값이 아닌 첫번쨰 값을 불러오기도 해요

그리고 모든 DBMS에서 지원하는 함수에요! 다 까먹으면 이것만 우선 기억하도록 해요 😋

 

COALESCE  (모든 DBMS에서 사용가능) (꺄🤍)

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

// NULL 처리 상황
SELECT COALESCE(Column명1, Column명1이 NULL인 경우 대체할 값)
FROM 테이블명


// Column1 ~ 4 중 NULL이 아닌 첫 번째 Column을 출력
SELECT COALESCE(Column명1, Column명2, Column명3, Column명4)
FROM 테이블명

 

* COALESCE(표현식....여러개) : 첫번째 인자의 값이 NULL 이면 두번째 인자값을 리턴, 모든 인자가 NULL 이면 NULL 을 리턴 

- ex ) COALESCE(age,1) 에서 age 가 null 이면 1 을 리턴

 


마지막으로 NULLIF 입니다, 

앞서 본 함수와는 조금 다른 목적이에요.

두개가 같으면  Null을 반환합니다. 

 

*NULLIF (Postgre SQL)

* NULLIF(표현식1, 표현식2) : 표현식1이 표현식2와 같으면 NULL 을, 같지 않으면 표현식1 을 리턴.

--> 특정 값을 NULL로 치환할 때 주로 사용.

SELECT NULLIF(표현식1, 표현식2) 
FROM 테이블명;

 

 

마지막으로 DBMS별 정리한 표를 살펴보며 마무리 하겠습니다! 👀

 

DATABASE PROPRIETARY
FUNCTION
COALESCE
support
Oracle NVL() Yes
MySQL IF() Yes
PostgreSQL NULLIF() Yes
Sybase IFNULL() Yes
MS SQL ISNULL() Yes
Sever ISNULL() Yes
DB2 IFNULL(), NVL() Yes
SQLite IFNULL() Yes

 

 

'SQL' 카테고리의 다른 글

[SQL] 테이블 생성하기(DROP DATABASES, CREATE DATABASE)  (0) 2022.10.06
[SQL튜닝] 효율이 좋은 쿼리 (대용량 데이터 처리)  (0) 2022.08.30
[SQL] update, set - 테이블 내 데이터 값 변경하기  (0) 2022.08.30
Mysql 에 csv 파일 불러오기  (0) 2022.08.15
[SQL튜닝] SQL 성능 튜닝 기초 (INDEX, Cardinality, 점조건, 선분조건)  (0) 2022.06.28
    'SQL' 카테고리의 다른 글
    • [SQL] 테이블 생성하기(DROP DATABASES, CREATE DATABASE)
    • [SQL튜닝] 효율이 좋은 쿼리 (대용량 데이터 처리)
    • [SQL] update, set - 테이블 내 데이터 값 변경하기
    • Mysql 에 csv 파일 불러오기
    춘식이2
    춘식이2
    업글이✧춘식이2 님의 블로그입니다.

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.