`
eminem
  • 浏览: 138307 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

转 COALESCE 函数 和CASE语句

    博客分类:
  • SQL
阅读更多
COALESCE 函数
功能
返回列表中的第一个非空表达式。

语法
COALESCE ( expression, expression [ , ...] )
参数
expression    任意表达式。
标准和兼容性
SQL/92    SQL/92。
SQL/99    核心特性。

示例
下面的语句返回值 34。
SELECT COALESCE( NULL, 34, 13, 0 )
备注
如果所有参数均为 NULL,则 COALESCE 返回 NULL。

COALESCE(expression1,...n) 与此 CASE 函数等效:
CASE   WHEN (expression1 IS NOT NULL) THEN expression1 
... 
WHEN (expressionN IS NOT NULL) THEN expressionN   ELSE NULLEND
尽管 ISNULL 等效于 COALESCE,但它们的行为是不同的。包含具有非空参数的 ISNULL
的表达式将视为 NOT NULL,而包含具有非空参数的 COALESCE 的表达式将视为 NULL。
使用COALESCE的秘密在于大部分包含空值的表达式最终将返回空值(连接操作符“||”
是一个值得注意的例外)。例如,空值加任何值都是空值,空值乘任何值也都是空值,
依此类推。
这样您就可以构建一系列表达式,每个表达式的结果是空值或非空,这就像一个CASE语
句,表达式按照顺序进行测试,第一个满足条件的值就确定了结果。


分享到:
评论
2 楼 Freedomcxc 2009-03-10  
    
1 楼 eminem 2008-02-13  
一、CASE(可用于基本SQL和过程中)

1、删除表、创建表、注释、插入数据操作。

DROP TABLE AA_WEEK;

CREATE TABLE AA_WEEK(

CODE SMALLINT NOT NULL,

EN_NAME VARCHAR(20) NOT NULL,

ABB VARCHAR(20),

CONSTRAINT P_AA_WEEK_CODE PRIMARY KEY (CODE)

);

COMMENT ON TABLE AA_WEEK IS

'星期';

COMMENT ON AA_WEEK

(CODE IS '星期代码',

EN_NAME IS '英文星期名',

ABB IS '英文缩写'

);

INSERT INTO AA_WEEK VALUES

(1,'Monday','Mon'),

(2,'Tuesday','Tues'),

(3,'Wednesday','Wed'),

(4,'Thursday','Thurs'),

(5,'Friday','Friday'),

(6,'Saturday','Sat'),

(7,'Sunday','Sun');

COMMIT;

2、CASE查询

两种语法模式:

(1):CASE

WHEN 条件 THEN 结果1

ELSE 结果2

END

(2):CASE 表达式1

WHEN 表达式2 THEN 结果1

ELSE 结果2

END

-- 单值表达式作为条件

SELECT

CASE CODE

WHEN 1 THEN '一'

WHEN 2 THEN '二'

WHEN 3 THEN '三'

WHEN 4 THEN '四'

WHEN 5 THEN '五'

WHEN 6 THEN '六'

WHEN 7 THEN '七'

ELSE 'CODE错误!'

END AS CN_CODE,

EN_NAME

FROM AA_WEEK;

CN_CODE EN_NAME

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

'一' 'Monday'

'二' 'Tuesday'

'三' 'Wednesday'

'四' 'Thursday'

'五' 'Friday'

'六' 'Saturday'

'七' 'Sunday'

'CODE错误!' 'HAHA'

-- 条件直接写到when后面

SELECT

CASE

WHEN CODE = 1 THEN '一'

WHEN CODE = 2 THEN '二'

WHEN CODE = 3 THEN '三'

WHEN CODE = 4 THEN '四'

WHEN CODE = 5 THEN '五'

WHEN CODE = 6 THEN '六'

WHEN CODE = 7 THEN '七'

ELSE 'CODE错误!'

END AS CN_CODE,

EN_NAME

FROM AA_WEEK;

CN_CODE EN_NAME

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

'一' 'Monday'

'二' 'Tuesday'

'三' 'Wednesday'

'四' 'Thursday'

'五' 'Friday'

'六' 'Saturday'

'七' 'Sunday'

'CODE错误!' 'HAHA'

 

二、IF语句格式(仅仅限于DB2过程、触发器、函数中使用)

IF (条件)

THEN 语句;

ELSEIF (条件)

THEN 语句;

ELSEIF (条件)

THEN 语句;

... ...

ELSE

语句;

END IF;

相关推荐

    如何使用Oracle的COALESCE函数

    自Oracle 9i版本起,COALESCE函数被引入,它提供了一种简洁而高效的方式来处理NULL值,相比于传统的CASE语句,COALESCE提供了更直观、更快速的解决方案。 ### COALESCE函数的语法结构 COALESCE函数的语法格式如下...

    MySQL 基础 - 流程函数.md

    为了实现更复杂的逻辑控制和条件判断,MySQL内置了一系列流程控制函数,如IF函数、CASE函数、COALESCE函数以及NULLIF函数等。这些函数在SQL查询中扮演着重要的角色,它们可以帮助开发人员和数据库管理员根据特定的...

    1_hive函数大全.pdf

    条件函数在Hive中可以基于条件进行值的选择或返回,主要包含If函数、非空查找函数COALESCE和条件判断函数CASE。CASE函数可以根据不同的条件返回不同的结果。 字符串函数是处理文本数据时必不可少的工具。Hive提供了...

    hive函数大全.doc

    * COALESCE 函数:`COALESCE` * NULLIF 函数:`NULLIF` 这些条件函数可以用于判断条件和处理空值。 复合类型构建操作 复合类型构建操作是 Hive 中用于构建复合类型的函数。常见的复合类型构建操作包括: * 数组...

    sqlserver函数大全

    7. **比较和逻辑函数**:`ISNULL()`检查值是否为NULL并替换,`COALESCE()`返回第一个非NULL的参数,`IF...ELSE...`和`CASE...WHEN...END`用于条件判断。 8. **分析函数**:SQL Server 2005及更高版本引入了窗口函数...

    MySQL函数大全中文版

    5. **条件函数**:如`IF()`、`IFNULL()`和`COALESCE()`允许在SQL语句中进行条件判断,返回不同结果。 6. **控制流程函数**:如`CASE`语句用于创建复杂的条件表达式,`LEAST()`和`GREATEST()`用于找出最小或最大的值...

    oracle函数速查手册

    例如,使用`DECODE()`函数可以简化条件判断,`CASE`语句则提供了更复杂的逻辑控制。而`COALESCE()`函数能处理NULL值,避免因NULL引发的错误。 总的来说,Oracle函数速查手册是数据库管理员、开发人员和数据分析者的...

    oracle处理空值的方法

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

    SQLServer2000常用函数大全.rar

    在实际工作中,你可以根据具体需求,结合这些函数进行组合使用,如使用`CONVERT()`函数配合`DATEPART()`来解析和格式化日期,或者使用`CASE`语句实现复杂的条件判断。同时,`ISNULL()`和`COALESCE()`在处理可能存在...

    Oracle用decode函数或CASE-WHEN实现自定义排序

    本文将深入探讨如何使用`DECODE`函数和`CASE-WHEN`语句在Oracle中实现自定义排序。 1. **DECODE函数** `DECODE`函数在Oracle中被广泛用于条件判断和值的替换。在自定义排序的场景下,我们可以根据字段值来指定对应...

    大数据学习:Hive函数.pdf

    本文将详细介绍Hive函数的应用,包括聚合函数、数学函数、集合函数、类型转换函数、日期函数、条件函数、字符串函数和表生成函数等。 聚合函数 聚合函数用于对一组值执行计算,通常与SELECT语句的GROUP BY子句一起...

    Oracle函数及其查询.pptx

    - 还有一些其他功能,如转换函数(如DECODE、CASE表达式)和连接函数(如CONNECT BY),用于在复杂查询中处理条件和构建层级结构。 在实际应用中,了解并熟练掌握这些函数可以帮助开发者编写出更高效、更精确的SQL...

    sql语言和常用函数

    5. **条件函数**:IFNULL、COALESCE用于处理NULL值,CASE语句允许基于条件执行不同的计算。 6. **分组和排序函数**:GROUP BY用于将数据分组,ORDER BY用于对结果集进行排序。 在实践中,上机答案可能涵盖如何编写...

    hive函数大全(举例和目录)

    指定格式日期转UNIX时间戳函数 `unix_timestamp` 将指定格式的日期转换为UNIX时间戳。 **示例**: ```sql SELECT unix_timestamp('2023-01-01', 'yyyy-MM-dd') AS result; ``` ##### 5. 日期时间转日期函数 `to_...

    oracl 10G 函数用法例子

    在Oracle 10g数据库系统中,函数是SQL和PL/SQL编程的重要组成部分,它们用于处理数据并返回结果。函数可以分为内置函数和用户自定义函数两大类。本篇文章将详细探讨Oracle 10g中的各种函数用法,以及如何通过它们来...

    Oracle函数使用大全

    6. **条件函数**:IFNULL()和NVL()用于处理空值,DECODE()根据条件返回不同值,CASE...WHEN...END结构实现复杂的条件判断。 7. **排序和排名函数**:RANK(), DENSE_RANK(), ROW_NUMBER()在分组后的数据中生成顺序...

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

    以上只是Oracle特殊函数中的一部分,实际应用中还有许多其他函数,如 `DECODE`、`CASE` 语句等,可以根据具体需求灵活选择和组合使用。熟练掌握这些函数,能有效提高在Oracle SQL中的编程效率和数据处理能力。在实际...

    ORACLE函数大全

    3. DECODE():类似于CASE语句的简化版本,用于根据条件选择返回值。 4. GREATEST()和LEAST():找出多个值中的最大值和最小值。 以上只是Oracle函数大全中的一部分,实际中还有更多复杂的函数,如正则表达式函数...

    Oracle函数大全.pdf

    Oracle提供了一系列的函数,用于处理不同类型的数据,如字符串、数字、日期和时间等。下面按照文档所提供的内容,详细解读各个函数以及相关知识点: ### 第一章 字符串大全 字符串函数用于对字符数据进行处理。 -...

    字符型数据转换为数值型.rar

    - SQL中,`IS NULL`检查语句用于识别空值,然后使用`COALESCE()`或`IFNULL()`函数来处理。 4. **进制转换**: - 字符串可能表示不同进制的数字,如二进制、八进制、十六进制。在Python中,可以使用`int(string, ...

Global site tag (gtag.js) - Google Analytics