여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. SQL - NULL 함수
SQL – NULL 함수
2년전 작성
9개월전 수정

IFNULL(), ISNULL(), COALESCE(), NVL()

표현식이 NULL일 때 대체 값을 반환하는 방법을 알아보자.

제품 테이블
P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 Jarlsberg 10.45 16 15
2 Mascarpone 32.56 23  
3 Gorgonzola 15.67 9 20

구문

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

“UnitsOnOrder” 값 중 하나가 NULL이면 결과는 NULL이 된다.

MySQL

IFNULL() 함수를 사용하면 표현식이 NULL인 경우 대체 값을 반환할 수 있다.

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

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

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

SQL Server

IFNULL() 함수를 사용하면 표현식이 NULL인 경우 대체 값을 반환할 수 있다.

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

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

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

MS Access

IsNull() 함수는 표현식이 null 값인 경우 TRUE(-1)를 반환하고, 그렇지 않으면 FALSE(0)를 반환한다.

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

Oracle

NVL() 함수는 동일한 결과를 반환한다.

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

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

SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;
참고

Mingg`s Diary
밍구
공부 목적 블로그