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