Latest web development tutorials

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

이 경우 위의 예에서 "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

신탁

오라클 () 함수를 ISNULL하지 않았다. 그러나, 우리는 동일한 결과를 달성하기 위해 NVL () 함수를 사용할 수 있습니다 :

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

MySQL의

MySQL은 또한 유사한 ISNULL () 함수를 가지고있다. 하지만 마이크로 소프트의 ISNULL와 함께 작동 () 함수는 조금 다르다.

다음과 같이 MySQL의에서, 우리는 IFNULL () 함수를 사용할 수 있습니다 :

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

또는 다음과 같이 우리는 COALESCE () 함수를 사용할 수 있습니다 :

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