SQL NULL º¯Êý

SQL ISNULL()¡¢NVL()¡¢IFNULL() ºÍ COALESCE() º¯Êý

Çë¿´ÏÂÃæµÄ "Products" ±í£º

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 computer 699 25 15
2 printer 365 36  
3 telephone 280 159 57

¼ÙÈç "UnitsOnOrder" ÊÇ¿ÉÑ¡µÄ£¬¶øÇÒ¿ÉÒÔ°üº¬ NULL Öµ¡£

ÎÒÃÇʹÓÃÈçÏ SELECT Óï¾ä£º

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

ÔÚÉÏÃæµÄÀý×ÓÖУ¬Èç¹ûÓÐ "UnitsOnOrder" ÖµÊÇ NULL£¬ÄÇô½á¹ûÊÇ NULL¡£

΢ÈíµÄ ISNULL() º¯ÊýÓÃÓڹ涨ÈçºÎ´¦Àí NULL Öµ¡£

NVL(), IFNULL() ºÍ COALESCE() º¯ÊýÒ²¿ÉÒÔ´ïµ½ÏàͬµÄ½á¹û¡£

ÔÚÕâÀÎÒÃÇÏ£Íû NULL ֵΪ 0¡£

ÏÂÃæ£¬Èç¹û "UnitsOnOrder" ÊÇ NULL£¬Ôò²»ÀûÓÚ¼ÆË㣬Òò´ËÈç¹ûÖµÊÇ NULL Ôò ISNULL() ·µ»Ø 0¡£

SQL Server / MS Access

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

Oracle

Oracle ûÓÐ 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
VUE