加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

sql isnull函数在各种数据库中的用法详解

发布时间:2022-06-15 13:41:02 所属栏目:MySql教程 来源:互联网
导读:本文章介绍了现在主流的数据库中使用is null函数是一些区别和事项,有需要的朋友可以简单的参考一下. isnull在数据库查询中的应用,特别是再语句连接的时候需要用到,比如连接时候,某个字段没有值但是又要左连接到其他表上 就会显示空,isnull可以判断是否是NULL
  本文章介绍了现在主流的数据库中使用is null函数是一些区别和事项,有需要的朋友可以简单的参考一下.
 
  isnull在数据库查询中的应用,特别是再语句连接的时候需要用到,比如连接时候,某个字段没有值但是又要左连接到其他表上 就会显示空,isnull可以判断是否是NULL,如果是给个默认值:
 
  isnull("字段名","默认的数据")
 
  ISNULL,使用指定的替换值替换NULL。   
 
  语法:ISNULL(check_expression,replacement_value).
 
  参数:check_expression   
 
  将被检查是否为 NULL的表达式,check_expression 可以是任何类型的.
 
   
  返回类型:返回与 check_expression 相同的类型.
 
  注释:如果 check_expression 不为 NULL,那么返回该表达式的值,否则返回   replacement_value.
 
  示例:A.将 ISNULL 与 AVG 一起使用,下面的示例查找所有书的平均价格,用值    $10.00 替换 titles 表的 price 列中的所有 NULL 条目,代码如下:
 
  USE    pubs    
   GO    
   SELECT    AVG(ISNULL(price,    $10.00))    
   FROM    titles    
   GO    
   
  下面是结果集:    
     
   --------------------------      
   14.24                                                
     
   (1    row(s)    affected)    
  B.使用 ISNULL,下面的示例为 titles 表中的所有书选择书名、类型及价格,如果一个书名的价格是 NULL,那么在结果集中显示的价格为 0.00,代码如下:
 
  USE    pubs    
     GO    
     SELECT    SUBSTRING(title,    1,    15)    AS    Title,    type    AS    Type,      
           ISNULL(price,    0.00)    AS    Price    
     FROM    titles    
     GO    
   
   
       
   --下面是结果集:    
   --phpfensi.com
     
     Title                        Type                    Price                       
     ---------------    ------------    --------------------------      
     The    Busy    Execut    business            19.99                                               
     Cooking    with    Co    business            11.95                                               
     You    Can    Combat      business            2.99                                                 
     Straight    Talk    A    business            19.99                                               
                         
     Is    Anger    the    En    psychology        10.95                                                
     Life    Without    Fe    psychology        7.00                                                  
     Prolonged    Data      psychology        19.99                                               
     Emotional    Secur    psychology        7.99                                                 
     Onions,    Leeks,      trad_cook          20.95                                                
     Fifty    Years    in      trad_cook          11.95                                               
     Sushi,    Anyone?      trad_cook          14.99                                                
       
     (18    row(s)    affected)    
  国外一些说明:
 
  In the example above, if any of the "UnitsOnOrder" values are NULL, the result is NULL.
 
  Microsoft's ISNULL() function is used to specify how we want to treat NULL values.
 
  The NVL(), IFNULL(), and COALESCE() functions can also be used to achieve the same result.
 
   Oracle does not have an ISNULL() function. However, we can use the NVL() function to achieve the same result,代码如下:
 
  SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
  FROM Products
  MySQL
  MySQL does have an ISNULL() function.However, it works a little bit different from Microsoft's ISNULL() function.
 
  In MySQL we can use the IFNULL() function, like this:SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
 
  FROM Products or we can use the COALESCE() function, like this:代码如下:
 
  SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
  FROM Products
 

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读