`

空值处理

阅读更多

 

COALESCE  

  返回其参数中第一个非空表达式。  

 

  语法  

  COALESCE   (   expression   [   ,...n   ]   )    

 

  参数  

  expression  

 

  任何类型的表达式。  

 

  n  

 

  表示可以指定多个表达式的占位符。所有表达式必须是相同类型,或者可以隐性转换为相同的类型。  

 

  返回类型  

  将相同的值作为   expression   返回。  

 

  注释  

  如果所有自变量均为   NULL ,则   COALESCE   返回   NULL   值。  

 

  COALESCE(expression1,...n)   与此   CASE   函数等价:  

 

  CASE  

        WHEN   (expression1   IS   NOT   NULL)   THEN   expression1  

        ...  

        WHEN   (expressionN   IS   NOT   NULL)   THEN   expressionN  

        ELSE   NULL  

 

 

 

 

  示例  

  在下面的示例中,显示包含三列有关某个雇员每年工资收入信息的   wages   表: hourly_wage salary     commission 。但是,每个雇员只能接受一种付款方式。若要确定支付给所有雇员的工资总额,请使用   COALESCE   函数接受在   hourly_wage salary     commission   中找到的非空值。  

 

  SET   NOCOUNT   ON  

  GO  

  USE   master  

  IF   EXISTS   (SELECT   TABLE_NAME   FROM   INFORMATION_SCHEMA.TABLES    

              WHERE   TABLE_NAME   =   'wages')  

        DROP   TABLE   wages  

  GO  

  CREATE   TABLE   wages  

  (  

        emp_id             tinyint         identity,  

        hourly_wage       decimal       NULL,  

        salary             decimal         NULL,  

        commission       decimal       NULL,  

        num_sales       tinyint       NULL  

  )  

  GO  

  INSERT   wages   VALUES(10.00,   NULL,   NULL,   NULL)  

  INSERT   wages   VALUES(20.00,   NULL,   NULL,   NULL)  

  INSERT   wages   VALUES(30.00,   NULL,   NULL,   NULL)  

  INSERT   wages   VALUES(40.00,   NULL,   NULL,   NULL)  

  INSERT   wages   VALUES(NULL,   10000.00,   NULL,   NULL)  

  INSERT   wages   VALUES(NULL,   20000.00,   NULL,   NULL)  

  INSERT   wages   VALUES(NULL,   30000.00,   NULL,   NULL)  

  INSERT   wages   VALUES(NULL,   40000.00,   NULL,   NULL)  

  INSERT   wages   VALUES(NULL,   NULL,   15000,   3)  

  INSERT   wages   VALUES(NULL,   NULL,   25000,   2)  

  INSERT   wages   VALUES(NULL,   NULL,   20000,   6)  

  INSERT   wages   VALUES(NULL,   NULL,   14000,   4)  

  GO  

  SET   NOCOUNT   OFF  

  GO  

  SELECT   CAST(COALESCE(hourly_wage   *   40   *   52,    

        salary,    

        commission   *   num_sales)   AS   money)   AS   'Total   Salary'    

  FROM   wages  

  GO  

 

  下面是结果集:  

 

  Total   Salary    

  ------------    

  20800.0000  

  41600.0000  

  62400.0000  

  83200.0000  

  10000.0000  

  20000.0000  

  30000.0000  

  40000.0000  

  45000.0000  

  50000.0000  

  120000.0000  

  56000.0000  

 

  (12   row(s)   affected)  

 

 

语法    

 

   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)   

 

 

 

1.MSSQL: ISNULL()

2.Oracle: NVL()

3.Mysql: IFNULL()

 

在SQL Server Oracle MySQL 当数据库 中查出某值为NULL怎么办?

 

1.MSSQL: ISNULL()

 

语法

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。

 

 

2.Oracle: NVL()

 

语法

 

NVL(eExpression1, eExpression2)

 

参数

eExpression1, eExpression2

 

如果 eExpression1 的计算结果为 null 值,则 NVL() 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 NULL

 

返回值类型

 

字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值

 

说明

 

在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值。

 

3.Mysql: IFNULL()

 

语法

IFNULL(expr1,expr2)

 

参数

expr1,expr2

假如expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。

 

 

 

分享到:
评论

相关推荐

    探讨SQL Server数据库中空值处理技巧

    探讨 SQL Server 数据库中空值处理技巧 在 SQL Server 中处理空值是数据库系统中非常重要的一方面。空值的存在可能会导致数据不完整、计算错误、外键处理问题等。因此,了解如何正确地处理空值是非常必要的。本文将...

    数据处理Pandas-空值处理方案-Python实例源码.zip

    本资料包“数据处理Pandas-空值处理方案-Python实例源码.zip”聚焦于Pandas如何处理数据集中常见的空值(NaN)问题。在进行任何深入的数据分析之前,对数据集进行预处理是非常关键的步骤,而处理缺失值是预处理中的...

    Python代码源码-实操案例-框架案例-空值处理方案….zip

    在Python编程语言中,空值处理是至关重要的一个环节,特别是在数据分析、数据清洗以及软件开发过程中。本资源包“Python代码源码-实操案例-框架案例-空值处理方案….zip”显然聚焦于如何有效地处理Python中的空值,...

    Python 空值处理方案 Python源码

    Python 空值处理方案 Python源码Python 空值处理方案 Python源码Python 空值处理方案 Python源码Python 空值处理方案 Python源码Python 空值处理方案 Python源码Python 空值处理方案 Python源码Python 空值处理方案 ...

    ios-IOS崩溃异常的处理,防止数组越界,字典空值处理.zip

    标题提到的“iOS崩溃异常的处理,防止数组越界,字典空值处理”是一个关键的话题,它涉及到Swift或Objective-C编程中的常见错误处理策略。在这个场景下,我们主要关注的是如何避免因数组越界访问和字典空值引用导致...

    电信设备-对表单进行排查空值处理的方法及装置.zip

    "对表单进行排查空值处理的方法及装置"是一个专门针对这一需求的技术方案,其主要目的是确保表单数据的无误和有效利用。以下是对该主题的详细阐述: 一、表单空值问题 在电信系统中,表单数据是收集、存储和分析...

    NIFI-MySqlToMySql增量同步数据实时采集-实现了日期类型-以及空值处理-插入已存在变更新-更新未存在变插入.zip

    NIFI_MySqlToMySql增量同步数据实时采集_实现了日期类型_以及空值处理_插入已存在变更新_更新未存在变插入.zip 使用了NIFI1.21.0最新版,2023-06-20作者在这个时间做好的,这个大数据处理流程,已经实现了,增量mysql的...

    SQL培训 :日期类型+ 常用函数、空值处理、分页语句+多表关联(自用)

    在SQL(Structured Query Language)中,日期类型和常用的函数、空值处理、分页语句以及多表关联是数据库操作的基础且重要的知识点。下面将详细阐述这些内容。 1. **日期类型** SQL中的日期时间类型包括DATE、TIME...

    空值处理 分箱 (1).ipynb

    空值处理 分箱 (1).ipynb

    python处理csv中的空值方法

    在本篇教程中,将会介绍如何使用Python语言来处理CSV文件中的空值。CSV文件广泛应用于数据存储和交换,由于其结构简单和易于编辑,经常被用于各种数据分析和机器学习工作中。在实际使用过程中,由于各种原因,CSV...

    实验七SQL的空值和空集处理.doc

    SQL 的空值和空集处理 SQL 语言中,NULL 值和空集是两个特殊的概念,它们在数据库查询操作中扮演着重要的角色。为了更好地理解和处理空值和空集,需要通过实验和实践来验证它们的特性和行为。 实验目的: * 认识 ...

    使用XStream是实现XML与Java对象的转换(4)--转换器

    7. **空值处理** 默认情况下,XStream不会序列化为null的字段。如果你需要保留这些信息,可以通过转换器来控制null值的序列化。 总之,XStream的转换器功能为我们提供了高度的灵活性,可以定制XML与Java对象之间的...

    SQL Server 空值处理策略[推荐]

    在SQL Server中,空值(NULL)处理是一个重要的议题,因为它们在数据处理和分析时可能会引起不期望的结果。本文主要关注三个关键方面:计数空值、使用空表值以及外键处理。 首先,我们来看空值在计数中的处理。在...

    数据清洗--DataFrame中的空值处理方法

    在数据分析中,数据清洗是一个至关重要的步骤,其中处理空值是数据清洗中的一项基本任务。在Python编程语言中,使用Pandas库能够方便地对数据进行操作。Pandas是专门针对数据分析任务而构建的一个强大的数据分析工具...

    matlab 空值预处理

    对于数值型数据,MATLAB提供了多种空值处理方法。一种常见的方法是使用`isnan()`函数来检测数组中的空值,并用其他值进行替换。例如,可以使用`replaceNaNs = @(x) x(isnan(x)) = replacementValue;`这个匿名函数,...

    SQL学习笔记七函数 数字,日期,类型转换,空值处理,case

    这篇笔记主要涵盖了数字处理、日期操作、类型转换以及空值处理,还有CASE语句的使用,这些都是数据库查询和数据分析中的基本要素。 1. **数字函数**: - `ABS()`:这个函数用于返回一个数值的绝对值,例如`ABS(-5)...

    SQL语言中的空值问题.pdf

    下一代数据库语言标准SQL 3对NULL处理方法进行了扩充,引入了新的空值处理方法,如使用IS NULL和IS NOT NULL运算符来判断空值的存在性,以及使用COALESCE函数来处理空值问题。 SQL语言中的空值问题是一个非常重要的...

Global site tag (gtag.js) - Google Analytics