SQL NULL 함수
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입니다.
Microsoft의 ISNULL() 함수는 NULL 값을 처리하는 방법을 지정하는 데 사용됩니다.
NVL(), IFNULL() 및 COALESCE() 함수도 동일한 결과를 얻을 수 있습니다.
여기서는 NULL 값이 0이 되기를 원합니다.
아래에서 "UnitsOnOrder"가 NULL이면 ISNULL()은 값이 NULL이면 0을 반환하므로 계산에 영향을 미치지 않습니다.
SQL Server / MS Access
SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products
FROM Products
Oracle
Oracle에는 ISNULL() 함수가 없습니다. 그러나 NVL() 함수를 사용하면 동일한 결과를 얻을 수 있습니다.
SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products
FROM Products
MySQL
MySQL에도 ISNULL()과 유사한 기능이 있습니다. 그러나 Microsoft의 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