`
eminem
  • 浏览: 136565 次
  • 性别: 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数据库的coalesce函数

    SQL Server COALESCE函数详解及实例

    主要介绍了SQL Server COALESCE函数详解及实例的相关资料,COALESCE函数比ISNULL更加强大,这个函数的确非常有用,需要的朋友可以参考下

    ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数

    ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数的几种用法,

    hive函数大全(中文版)

    2. 非空查找函数: COALESCE 22 3. 条件判断函数:CASE 22 4. 条件判断函数:CASE 22 七、字符串函数 23 1. 字符串长度函数:length 23 2. 字符串反转函数:reverse 23 3. 字符串连接函数:concat 23 4. 带分隔符字符...

    MySql COALESCE函数使用方法代码案例

    主要介绍了MySql COALESCE函数使用方法代码案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    coalesce:PHP的Null Coalesce函数(等待`??`运算符...)

    coalesce与coalescy 等待等待时使用的两个“ coalescy” php函数?? 操作员 : coalesce :PHP的简单空null合并函数coalescy :与coalesce一样,但返回第一个不虚假的值。 还有两个函数可以在不E_NOTICE情况下获取...

    mysql中替代null的IFNULL()与COALESCE()函数详解

    主要给大家介绍了关于mysql中替代null的IFNULL()与COALESCE()函数的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看看吧。

    sql-显示供应商供应零件的汇总列表(with rollup+coalesce)

    文章目录题目数据表分析代码...函数COALESCE(expression_1,…,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。 代码 select coalesce(sno,'所有

    mysql coalesce用法

    在mysql中,其实有不少方法和函数是很有用的,这次介绍一个叫coalesce的,拼写十分麻烦,但其实作用是将返回传入的参数中第一个非null的值

    Transact-SQL中的对空值的处理函数COALESCE.pdf

    Transact-SQL中的对空值的处理函数COALESCE.pdf

    通信与网络中的SQL Server COALESCE()函数的创新应用

    COALESCE()函数可以接受一系列的值,如果列表中所有项都为空(null),那么只使用一个值。然后,它将返回第一个非空值。这一技巧描述了创造性使用SQL Server 中COALESCE()函数的两种方法。  这里有一个简单的例子...

    浅析SQL Server的分页方式 ISNULL与COALESCE性能比较

    本文上述重点讲述了SQL Server的分页方式,COALESCE和ISNULL函数区别之处,简短的内容,深入的理解。有兴趣的朋友可以看下

    mysql函数大全,mysql

    COALESCE它会返回列表中第一个非NULL的值,或者,如果不存在非NULL的值,它就会返回一个NULL INTERVALINTERVAL运算符提供另外一种对数字及其范围的控制。它接受一个数字列表(N0, N1, N2...),将N0与剩下的所有数字...

    DB2函数名称及举例

    DB2函数名称及举例,例如avg,coalesce,concat,count,replace,space,to_char

    mysql中coalesce()的使用技巧小结

    最近无意间发现mysql的coalesce,又正好有时间,就把mysql中coalesce()的使用技巧总结下分享给大家,下面来一起看看详细的介绍: coalesce()解释 返回参数中的第一个非空表达式(从左向右依次类推); 使用示例 a,b,...

    mysql中null(IFNULL,COALESCE和NULLIF)相关知识点总结

    本文实例讲述了mysql中null(IFNULL,COALESCE和NULLIF)相关知识点。分享给大家供大家参考,具体如下: 在MySQL中,NULL值表示一个未知值,它不同于0或空字符串”,并且不等于它自身。 我们如果将NULL值与另一个...

Global site tag (gtag.js) - Google Analytics