SQL 강좌 33.SQL NULL Functions

SQL IFNULL(), ISNULL(), COALESCE() and NVL() Functions

다음 Products 테이블을 보자

2018-02-16 6 18 32

UnitsOnOrder의 필드는 필수로 적어야하는 항목이 아니며 NULL을 포함할 수 있다.

다음 구문은 어떠한 UnitsOnOrder의 값이 NULL이라면 결과는 NULL이 될 것이다.

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

NULL값으로 연산을 하면 무조건 NULL이 된다는 소리인듯?

따라서 해결책은 다음과 같다

Solutions

MySQL

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

또는

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

SQL Server

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

MS Access

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

Oracle

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

Comments