sql isnull函数在各种数据库中的用法分析

isnull在数据库查询中的应用,特别是再语句连接的时候需要用到

比如连接时候,某个字段没有值但是又要左连接到其他表上 就会显示空,

isnull可以判断是否是NULL,如果是给个默认值

 

isnull("字段名","默认的数据")

ISNULL  
  使用指定的替换值替换    NULL。  
   
语法  
  ISNULL    (    check_expression    ,    replacement_value    )    
   
  参数  
   check_expression  
   
   将被检查是否为    NULL的表达式。check_expression    可以是任何类型的。  
   
   replacement_value  
   
   在    check_expression    为    NULL时将返回的表达式。replacement_value    必须与    check_expresssion    具有相同的类型。    
   
   返回类型  
   返回与    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  

    
   下面是结果集:   
  

 代码如下 复制代码
 
   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                                              
   Silicon    Valley      mod_cook            19.99                                              
   The    Gourmet    Mic    mod_cook            2.99                                                
   The    Psychology      UNDECIDED          0.00                                                
   But    Is    It    User      popular_comp    22.95                                              
   Secrets    of    Sili    popular_comp    20.00                                              
   Net    Etiquette        popular_comp    0.00                                                
   Computer    Phobic    psychology        21.59                                              
   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.

In this case we want NULL values to be zero.

Below, if "UnitsOnOrder" is NULL it will not harm the calculation, because ISNULL() returns a zero if the value is NULL:

SQL Server / MS Access

 代码如下 复制代码

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

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

时间: 2024-08-03 20:33:21

sql isnull函数在各种数据库中的用法分析的相关文章

SQL Server 2008 R2 清空数据库中ldf日志文件

/************************************************************  * Sql Server 2008 R2 清空数据库中ldf日志文件  * 将Whir_InternalSystem替换为您要操作的数据库即可  ************************************************************/ USE [master] ALTER DATABASE [Whir_InternalSystem]  S

SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases)

原文:SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases) 一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 遇到的问题(Problems) 实现代码(SQL Codes) 方法一:拼接SQL: 方法二:调用模板存储过程创建存储过程: 总结 扩展阅读 参考文献(References) 二.背景(Contexts) 在我的数据库服务器上,同一个实例

索引在ORACLE数据库中的应用分析

oracle|数据|数据库|索引 索引在数据库中的应用分析     索引是提高数据查询最有效的方法,也是最难全面掌握的技术,因为正确的索引可能使效率提高10000倍,而无效的索引可能是浪费了数据库空间,甚至大大降低查询性能.   索引的管理成本 1.  存储索引的磁盘空间 2.  执行数据修改操作(INSERT.UPDATE.DELETE)产生的索引维护 3.  在数据处理时回需额外的回退空间.   实际数据修改测试: 一个表有字段A.B.C,同时进行插入10000行记录测试 在没有建索引时平均

MySql数据库中Select用法小结_Mysql

一.条件筛选 1.数字筛选:sql = "Select * from [sheet1$] Where 销售单价 > 100" 2.字符条件:sql = "Select * from [sheet1$] Where 物品名称 ='挡泥板'" 3.日期条件:sql = "Select * from [sheet1$] Where 物品名称 ='挡泥板'" 4.区间条件:sql = "Select * from [sheet1$] Wh

SQL Server数据库中tempdb性能分析

SQL Server有四个重要的系统级数据库:master,model,msdb,tempdb. 1.SQL Server系统数据库介绍 SQL Server有四个重要的系统级数据库:master,model,msdb,tempdb. master:记录SQL Server系统的所有系统级信息,包括实例范围的元数据,端点,链接服务器和系统配置设置,还记录其他数据库是否存在以及这些数据问文件的位置等等.如果master不可用,数据库将不能启动. model:用在SQL Server 实例上创建的所

mysql 数据库中索引原理分析说明

下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引.比如,我们要查"安"字,就会很自然地翻开字典的前几页,因为"安"的拼音是"an",而按照拼音排序汉字的字典是以英文字母"a"开头并以"z"结尾的,那么"安"字就自然地排在字典的前部.如果您翻完了所有以"a"开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字:同

SQL Server日期加减函数DATEDIFF与DATEADD用法分析

本文实例讲述了SQL Server日期加减函数DATEDIFF与DATEADD用法.分享给大家供大家参考,具体如下: SQL Server 日期的加减函数: DATEDIFF    DATEADD DATEDIFF: 返回跨两个指定日期的日期边界数和时间边界数, 语法:DATEDIFF ( datepart , startdate , enddate ) 用 enddate 减去 startdate 注:datepart 指定应在日期的哪一部分计算差额的参数,其日期相减时,只关注边界值,例: S

ThinkPHP中redirect用法分析_php实例

本文实例讲述了ThinkPHP中redirect用法.分享给大家供大家参考.具体分析如下: redirect 重定向的通用语法为:redirect(url,params=array(),delay=0,msg=''),假设当前为默认 HOME分组 Aritcle模块 insert操作,一些例子如下: 复制代码 代码如下: // 跳转到 edit 操作   $this->redirect('edit');   // 跳转到 UserAction下的edit 操作   $this->redirec

symfony2.4的twig中date用法分析_php实例

本文实例讲述了symfony2.4的twig中date用法.分享给大家供大家参考,具体如下: 获得当前时间: {{ "now"|date("Y-m-d") }} //2014-03-06 获得三天后的时间 {{ "+3 day"|date('Y-m-d') }} //2014-03-09 //或者 date('+3days') //2014-03-09 对twig中的变量进行处理: {{ var|date("Y-m-d") }