최신 웹 개발 튜토리얼
 

SQL NULL 기능


SQL ISNULL() , NVL() , IFNULL()COALESCE() 함수

다음에 봐 "Products" 테이블 :

P_Id 상품명 단가 UnitsInStock UnitsOnOrder
1 Jarlsberg 10.45 (16) (15)
마스 32.56 (23)
고르곤 졸라 15.67 9 (20)

한다고 가정 "UnitsOnOrder" 열은 선택 사항이며, NULL 값을 포함 할 수있다.

우리는 다음과 같은 SELECT 문이 :

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

의 (있는 경우) 위의 예에서 "UnitsOnOrder" 값이 NULL이며, 그 결과는 NULL이다.

마이크로 소프트의 ISNULL() 함수는 우리가 NULL 값을 처리하는 방법을 지정하는 데 사용됩니다.

NVL() , IFNULL()COALESCE() 함수는 동일한 결과를 달성하기 위해 사용될 수있다.

이 경우 우리는 NULL 값이 제로가되고 싶어요.

경우 아래의 "UnitsOnOrder" NULL이 있기 때문에, 계산을 해가되지 않습니다 ISNULL() 값이 NULL 인 경우 0을 반환합니다 :

MS Access

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

SQL Server

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

Oracle

오라클은 없습니다 ISNULL() 함수를. 그러나, 우리는 사용 NVL() 와 동일한 결과를 달성하기 위해 기능 :

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

MySQL

MySQL의는 가지고 ISNULL() 함수를. 그러나, MS의 상이 조금 작동 ISNULL() 함수.

MySQL의에서 우리는 사용할 수 IFNULL() 과 같은 함수를 :

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

또는 우리가 사용할 수있는 COALESCE() 과 같은 함수를 :

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