`
bada130
  • 浏览: 39111 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[Oracle] COALESCE的用法

阅读更多
  --COALESCE用法
  --COALESCE (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。
  --1. 建立普通的表
  WITH T_CUST AS
  (
    SELECT '张一' CUST_NM, '18610881234' PHONE_NUMBER1, '' PHONE_NUMBER2, '' PHONE_NUMBER3 FROM DUAL
    UNION ALL
    SELECT '张二' CUST_NM, '' PHONE_NUMBER1, '010-82828383' PHONE_NUMBER2, '' PHONE_NUMBER3 FROM DUAL
    UNION ALL
    SELECT '张三' CUST_NM, '' PHONE_NUMBER1, '13911091109' PHONE_NUMBER2, '010-85858585' PHONE_NUMBER3 FROM DUAL
    UNION ALL
    SELECT '张四' CUST_NM, NULL PHONE_NUMBER1, NULL PHONE_NUMBER2, NULL PHONE_NUMBER3 FROM DUAL    
  )
  SELECT * FROM T_CUST;

  --2. 利用COALESCE
  WITH T_CUST AS
  (
    SELECT '张一' CUST_NM, '18610881234' PHONE_NUMBER1, '' PHONE_NUMBER2, '' PHONE_NUMBER3 FROM DUAL
    UNION ALL
    SELECT '张二' CUST_NM, '' PHONE_NUMBER1, '010-82828383' PHONE_NUMBER2, '' PHONE_NUMBER3 FROM DUAL
    UNION ALL
    SELECT '张三' CUST_NM, '' PHONE_NUMBER1, '13911091109' PHONE_NUMBER2, '010-85858585' PHONE_NUMBER3 FROM DUAL
    UNION ALL
    SELECT '张四' CUST_NM, NULL PHONE_NUMBER1, NULL PHONE_NUMBER2, NULL PHONE_NUMBER3 FROM DUAL       
  )
  SELECT CUST_NM, COALESCE(PHONE_NUMBER1, PHONE_NUMBER2, PHONE_NUMBER3) AS CUST_PHONE FROM T_CUST;

  --3. 利用COALESCE后处理NULL值
  WITH T_CUST AS
  (
    SELECT '张一' CUST_NM, '18610881234' PHONE_NUMBER1, '' PHONE_NUMBER2, '' PHONE_NUMBER3 FROM DUAL
    UNION ALL
    SELECT '张二' CUST_NM, '' PHONE_NUMBER1, '010-82828383' PHONE_NUMBER2, '' PHONE_NUMBER3 FROM DUAL
    UNION ALL
    SELECT '张三' CUST_NM, '' PHONE_NUMBER1, '13911091109' PHONE_NUMBER2, '010-85858585' PHONE_NUMBER3 FROM DUAL
    UNION ALL
    SELECT '张四' CUST_NM, NULL PHONE_NUMBER1, NULL PHONE_NUMBER2, NULL PHONE_NUMBER3 FROM DUAL       
  )
  SELECT CUST_NM, NVL(COALESCE(PHONE_NUMBER1, PHONE_NUMBER2, PHONE_NUMBER3), 'NO') AS CUST_PHONE FROM T_CUST; 

 

  • 大小: 4.2 KB
  • 大小: 2.9 KB
  • 大小: 3 KB
分享到:
评论

相关推荐

    如何使用Oracle的COALESCE函数

    在深入探讨如何使用Oracle的COALESCE函数之前,我们首先需要理解这个函数的基本概念和它在数据处理中的重要性。COALESCE函数是Oracle数据库中一个非常实用且强大的功能,主要用于返回一组表达式中第一个非空(NULL)...

    Oracle几个很有用的特殊函数使用方法,经验只谈

    在Oracle数据库中,特殊函数是SQL查询和数据库管理的关键组成部分,它们极大地增强了数据处理和分析的能力。...在实际工作中,不断实践和探索这些函数的使用,将有助于你成为更出色的Oracle数据库管理员。

    oracle和db2的区别

    - 使用`VALUE(column_name, 'default_value')` 或者 `COALESCE(column_name, 'default_value')` - `VALUE`和`COALESCE`都是用于处理空值的函数,其中`COALESCE`更加常用。 #### 4. 类型转换 - **Oracle**: - ...

    oracle处理空值的方法

    Oracle提供了多种方法来处理空值,包括使用NVL、NVL2、COALESCE函数,以及CASE和DECODE语句。下面将详细介绍这些方法及其应用场景。 ### 1. NVL函数 NVL(expr1, expr2)函数用于替换空值。当expr1为NULL时,NVL函数...

    oracle与db2对比

    - Oracle 的 DECODE 方法提供了一种根据条件返回不同值的方法。 - DB2 中没有内置的 DECODE 函数,但可以使用 CASE 语句实现类似功能。 10. 其他差异: - 存储过程和函数的编写语法有所不同。 - 视图、索引、...

    Oracle函数及其用法

    本文将深入探讨Oracle中的函数及其用法,帮助你更好地理解和利用这些功能来优化你的数据库操作。 一、数值函数 1. ROUND():对数字进行四舍五入,可以指定保留的小数位数。 2. TRUNC():截断数字,不进行四舍五入。...

    Oracle与postgres的区别和转化

    | 数据库类型 | Oracle 方法 | Postgre | | --- | --- | --- | | 字符类型 | varchar、varchar2、nvarchar、nvarchar2 | varchar 或 text | | 数字类型 | number、numeric、real、blob、raw、bytea | float、float |...

    ORACLE与DB2的区别和转换

    对于那些需要在Oracle和DB2之间进行数据迁移或转换的项目来说,了解两者之间的区别及其转换方法至关重要。 #### 二、基本查询操作 ##### 1. 取前N条记录 **Oracle**: `Select * from TableName where rownum ;` ...

    Oracle碎片整理全面解析

    2. **合并扩展范围**:如果表空间已经存在大量的碎片,可以使用`COALESCE`命令来合并扩展范围,从而减少碎片。 ```sql ALTER TABLESPACE temp COALESCE; ``` 3. **导出/导入**:对于特定的表,可以采用导出/...

    oracle空间碎片的整理

    #### 三、整理Oracle空间碎片的方法 1. **重建索引**:通过重建索引来优化其存储结构,减少空间碎片。 ```sql ALTER INDEX idx_name REBUILD; ``` 2. **重新组织表**:通过导出(Export)和导入(Import)的...

    基于Oracle的简单ETL框架

    Oracle支持直接插入(INSERT)、批量插入(BULK COLLECT INTO)以及物化视图(Materialized View)等方法,以高效地将数据加载到目标表。此外,如果目标表结构与源表不同,可能还需要进行结构映射和数据类型转换。 ...

    oracle函数大全(分类显示).zip_Oracle 函数分类_oracle_oracle函数分类_oracle函数查阅用文档

    通过这份"oracle函数大全(分类显示).chm"文档,你可以详细了解到每个函数的具体用法、参数和返回值,从而更好地理解和应用到实际的数据库操作中。随着对Oracle的理解加深,你会发现这些函数能极大地提高你的数据库...

    oracle书籍

    Oracle数据库作为全球广泛使用的数据库管理系统,其强大的数据处理能力和丰富的内置函数是其核心优势之一。 在Oracle数据库中,函数是进行数据操作和计算的基础元素,它们可以对单个或多个值进行处理,并返回一个...

    oracle函数大全(分类显示).zip

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其强大的功能和灵活性深受开发者的青睐。"Oracle函数大全(分类显示)"这个资源显然是为了帮助开发者更好地理解和使用Oracle中的各种函数。下面,我们将详细...

    oracle 内置函数大全

    Oracle数据库系统是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据重要地位。Oracle内置函数是其强大功能的关键组成部分,这些函数极大地丰富了SQL语言的表达能力,使得数据处理和查询更为便捷高效...

    Oracle的几个Function实例

    在"Oracle的几个Function实例"这个主题中,我们将探讨一些常见的Oracle函数,并通过实际示例来理解它们的用法。 1. ** NVL 函数**: NVL函数用于处理空值(NULL)。如果一个字段的值为NULL,NVL函数会将其替换为你...

    ORACLE常识

    DBMS_OUTPUT 使用方法 DBMS_OUTPUT是Oracle中的一个包,用于在PL/SQL块中输出信息到屏幕。例如,`DBMS_OUTPUT.PUT_LINE('Hello, World!');` 将在控制台上打印出 "Hello, World!"。然而,值得注意的是,为了使DBMS_...

    Oracle 函数大全

    Oracle数据库系统提供了大量的内置函数,这些函数可用于数据处理、数据查询、条件判断等多种场景。根据提供的文件内容,可以总结出Oracle中部分...掌握这些函数的使用方法是Oracle数据库开发者和管理员必备的技能之一。

    oracle培训资料(整理版)

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级应用中占据着重要的地位。这份"Oracle培训资料(整理版)"包含了丰富的知识内容,特别是对于分析函数和Oracle内置函数的深入探讨,对于初学者和...

Global site tag (gtag.js) - Google Analytics