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