SQL ISNULL (), NVL (), IFNULL ()와 COALESCE () 함수
SQL ISNULL (), NVL (), IFNULL ()와 COALESCE () 함수
다음 "제품"테이블 봐 :
P_Id | ProductName | UnitPrice | UnitsInStock | UnitsOnOrder |
---|---|---|---|---|
1 | Jarlsberg | 10.45 | 16 | 15 |
2 | Mascarpone | 32.56 | 23 | |
3 | Gorgonzola | 15.67 | 9 | 20 |
"UnitsOnOrder"는 선택 사항이며, NULL 값을 포함합니다.
우리는 다음과 같은 SELECT 문을 사용 :
SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
FROM Products
FROM Products
이 경우 위의 예에서 "UnitsOnOrder"값은 결과가 NULL, NULL이다.
마이크로 소프트의 ISNULL () 함수는 NULL 값을 처리하는 방법을 지정하는 데 사용됩니다.
NVL () IFNULL () 및 유착 () 함수는 동일한 결과를 얻을 수있다.
여기, 우리는 NULL 값이 0 바랍니다.
"UnitsOnOrder"는 NULL의 경우는 값이 NULL 인 경우 때문에 지금, 그것은, 계산에 영향을 미치지 않습니다, ISNULL ()는 0을 반환 :
SQL 서버 / MS 액세스
SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products
FROM Products
신탁
오라클 () 함수를 ISNULL하지 않았다. 그러나, 우리는 동일한 결과를 달성하기 위해 NVL () 함수를 사용할 수 있습니다 :
SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products
FROM Products
MySQL의
MySQL은 또한 유사한 ISNULL () 함수를 가지고있다. 하지만 마이크로 소프트의 ISNULL와 함께 작동 () 함수는 조금 다르다.
다음과 같이 MySQL의에서, 우리는 IFNULL () 함수를 사용할 수 있습니다 :
SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products
FROM Products
또는 다음과 같이 우리는 COALESCE () 함수를 사용할 수 있습니다 :
SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products
FROM Products