SQL Null Function

2023. 4. 9. 10:16·📦 Database/SQL

💡 Null Function

Null 함수엔 IFNULL(), ISNULL(), COALESCE(), NVL() 등이 있다.

IF NULL은 해당 값이 Null일 경우 대체값을 설정해 그 값으로 변환한다.

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


기본 형식

IFNULL(), ISNULL()

자바의 Map 메서드인 getOrDefault() 와 비슷하며, IF와 IS NULL로도 Null 체크를 할 수 있다.

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

SELECT IF(IS NULL(name), "No Name", name) as name
FROM Animal_ins

COALESCE

표현식은 여러 항목 지정이 가능하고, 처음으로 만나는 NULL이 아닌 값을 출력한다.

표현식이 모두 NULL일 경우인 결과도 NULL을 반환한다.


COALESCS는 배타적 OR 관계 열에서 활용도가 높다.

엔티티에서 2개 이상의 속성(열) 중 하나의 값만 가지는 데이터일 경우

# NULL 처리 상황
SELECT COALESCE(Column명, "Null일 경우 대체 값")
FROM 테이블명;

# 배타적 OR 관계 열, Column 1~4 중 NULL이 아닌 첫번쨰 Column을 출력한다
SELECT COALESCE(Column1, Column2, Column3, Column4)
FROM 테이블명;

예시

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 Jarlsberg 10.45 16 15
2 Mascarpone 32.56 23
3 Gorgonzola 15.67 9 20

위의 테이블에서 Price를 구하는 쿼리를 작성해보자.

UnitsOnOrder의 값중 하나가 Null이라 결과는 Null이 나올 것이다.

SELECT ProductName, UnitPrice * (UUnitsInStock + UnitsOnOrder)
FROM Products;

IFNULL() 함수를 사용해 값이 Null인경우 대체값을 적용해보자

SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0))
FROM Products;

COALESCE()를 사용할 수도 있다.

SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;
저작자표시

'📦 Database > SQL' 카테고리의 다른 글

SQL Stored Procedure  (0) 2023.04.09
SQL Operator  (0) 2023.04.09
SQL Case  (0) 2023.04.09
SQL Select Into & Insert Into Select  (0) 2023.04.09
SQL Any & All  (0) 2023.04.08
'📦 Database/SQL' 카테고리의 다른 글
  • SQL Stored Procedure
  • SQL Operator
  • SQL Case
  • SQL Select Into & Insert Into Select
신건우
신건우
조용한 개발자
  • 신건우
    우주먼지
    신건우
  • 전체
    오늘
    어제
    • 분류 전체보기 (422)
      • 📘 Frontend (71)
        • Markup (1)
        • Style Sheet (2)
        • Dart (8)
        • Javascript (12)
        • TypeScript (1)
        • Vue (36)
        • React (2)
        • Flutter (9)
      • 📘 Backend (143)
        • Java (34)
        • Concurrency (19)
        • Reflection (1)
        • Kotlin (29)
        • Python (1)
        • Spring (42)
        • Spring Cloud (5)
        • Message Broker (5)
        • Streaming (2)
        • 기능 개발 (5)
      • 💻 Server (6)
        • Linux (6)
      • ❌ Error Handling (11)
      • 📦 Database (62)
        • SQL (31)
        • NoSQL (2)
        • JPQL (9)
        • QueryDSL (12)
        • Basic (4)
        • Firebase (4)
      • ⚙️ Ops (57)
        • CS (6)
        • AWS (9)
        • Docker (8)
        • Kubernetes (13)
        • MSA (1)
        • CI & CD (20)
      • 📚 Data Architect (48)
        • Data Structure (10)
        • Algorithm (8)
        • Programmers (17)
        • BaekJoon (5)
        • CodeUp (4)
        • Design Pattern (4)
        • AI (0)
      • ⚒️ Management & Tool (8)
        • Git (7)
        • IntelliJ (1)
      • 📄 Document (10)
        • Project 설계 (6)
        • Server Migration (3)
      • 📄 책읽기 (2)
        • 시작하세요! 도커 & 쿠버네티스 (2)
      • 🎮 Game (4)
        • Stardew Vally (1)
        • Path of Exile (3)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      GStreamer #Pipeline
      React #Markdown
      Lock #Thread #Concurrency
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.0
    신건우
    SQL Null Function
    상단으로

    티스토리툴바