http://blog.csdn.net/baoshan/article/details/2907602
COALESCE()
用法 Select  COALESCE(null,null,'1','2') 返回1
作用 返回其参数中第一个非空表达式。

isnull()
用法 Select  isnull(null,0) 返回 0
作用 遇到null 返回 指定值

nullif()
用法 nullif('aa','aa')  返回 null,  nullif(1,2)  返回 1
作用 两个值相等则返回null

http://blog.csdn.net/topsjava/article/details/1746152

NULLIF 函数

功能

通过比较表达式提供缩写的 CASE 表达式。

语法

NULLIF ( expression-1expression-2 )

参数

expression-1    要比较的表达式。

expression-2    要比较的表达式。

用法

NULLIF 比较两个表达式的值。

如果第一个表达式的值与第二个表达式的值相等,NULLIF 返回 NULL。

如果第一个表达式的值不等于第二个表达式的值,或者第二个表达式为 NULL,则 NULLIF 返回第一个表达式。

NULLIF 函数提供了编写某些 CASE 表达式的简便方法。

标准和兼容性
  • SQL/92    初级特性。

  • SQL/99    核心特性。

示例

下面的语句返回值 a:

SELECT NULLIF( 'a', 'b' )

下面的语句返回 NULL。

SELECT NULLIF( 'a', 'a' )
---------------------------------------------------------------------------------------------------

CASE 表达式

CASE 表达式提供条件 SQL 表达式。Case 表达式可以在能够使用表达式的任何地方使用。

CASE 表达式的语法如下:

CASE expression
WHEN expression
THEN expression, ...
ELSE expression ]
END

如果 CASE 语句后的表达式等于 WHEN 语句后的表达式,则返回 THEN 语句后的表达式。否则,返回 ELSE 语句后的表达式(如果它存在)。

例如,以下代码用 CASE 表达式作为 SELECT 语句的第二子句。

SELECT id,
( CASE name
WHEN 'Tee Shirt' then 'Shirt'
WHEN 'Sweatshirt' then 'Shirt'
WHEN 'Baseball Cap' then 'Hat'
ELSE 'Unknown'
END ) as Type
FROM "DBA".Product

可以替换的语法如下:

CASE
WHEN
 search-condition
THEN expression, ...
ELSE expression ]
END

如果满足 WHEN 语句后的搜索条件,则返回 THEN 语句后的表达式。否则,返回 ELSE 语句后的表达式(如果它存在)。

例如,以下语句用 CASE 表达式作为 SELECT 语句的第三子句,以将字符串与搜索条件相关联。

SELECT id, name,
( CASE
WHEN name='Tee Shirt' then 'Sale'
WHEN quantity >= 50 then 'Big Sale'
ELSE 'Regular price'
FROM "DBA".Product
用于简写 CASE 表达式的 NULLIF 函数

NULLIF 函数提供了一种以短格式写出某些 CASE 语句的方法。NULLIF 语法如下:

NULLIF ( expression-1expression-2 )

NULLIF 比较两个表达式的值。如果第一个表达式的值与第二个表达式的值相等,NULLIF 返回 NULL。如果它们不相等,NULLIF 则返回第一个表达式。

CASE 语句不同于 CASE 表达式

不要将 CASE 表达式的语法和 CASE 语句的语法混淆。

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

CASE 语句

说明

此语句用于根据多种情况选择执行路径。

语法 1

CASE value-expression
WHEN [ constant | NULL ] THEN statement-list ...
WHEN [ constant | NULL ] THEN statement-list ] ...
ELSE statement-list ]
END CASE

语法 2

CASE
WHEN
 [ search-condition | NULLTHEN statement-list ...
WHEN [ search-condition | NULLTHEN statement-list ] ...
ELSE statement-list ]
END CASE

用法

语法 1    CASE 语句是控制语句,它允许您根据表达式的值选择要执行的 SQL 语句列表。 value-expression 是具有单值的表达式,它的值可以是字符串、数字、日期或其它 SQL 数据类型。如果 value-expression 的值存在匹配的 WHEN 子句,则执行 WHEN 子句中的 statement-list。如果没有合适的 WHEN 子句而有 ELSE 子句,则执行 ELSE 子句中的 statement-list。执行在 END CASE 后的第一个语句重新开始。

如果 value-expression 可以为空,使用 ISNULL 函数用不同的表达式替换 NULL value-expression

语法 2    在这种格式下,执行 CASE 语句中第一个满足 search-condition 的语句。如果不满足 search-conditions,则执行 ELSE 子句。

如果表达式可以为 NULL,对第一个 search-condition 使用以下语法:

WHEN search-condition IS NULL THEN statement-list
权限

无。

副作用

无。

标准和兼容性

SQL/92    持久存储模块特性。
SQL/99    持久存储模块特性。

示例

下面的过程使用 CASE 语句,将示例数据库的产品表中列出的产品分为衬衣、帽子、短裤、未知几大类。

CREATE PROCEDURE ProductType (IN product_id INT, OUT type CHAR(10))
BEGIN
DECLARE prod_name CHAR(20);
SELECT name INTO prod_name FROM "DBA"."product"
WHERE id = product_id;
CASE prod_name
WHEN 'Tee Shirt' THEN
SET type = 'Shirt'
WHEN 'Sweatshirt' THEN
SET type = 'Shirt'
WHEN 'Baseball Cap' THEN
SET type = 'Hat'
WHEN 'Visor' THEN
SET type = 'Hat'
WHEN 'Shorts' THEN
SET type   'Shorts'
ELSE
SET type = 'UNKNOWN'
END CASE;
END

下面的示例使用语法 2 生成关于示例数据库中产品数量的消息。

CREATE PROCEDURE StockLevel (IN product_id INT)
BEGIN
DECLARE qty INT;
SELECT quantity INTO qty FROM product
WHERE id = product_id;
CASE
WHEN qty < 30 THEN
MESSAGE 'Order Stock' TO CLIENT;
WHEN qty > 100 THEN
MESSAGE 'Overstocked' TO CLIENT;
ELSE
MESSAGE 'Sufficient stock on hand' TO CLIENT;
END CASE;
END

COALESCE()、isnull()、nullif()函数的用法相关推荐

  1. PostgreSQL COALESCE 和 NULLIF 函数

    本文学习PostgreSQL COALESCE 和 NULLIF函数.COALESCE它返回第一个非空参数,并通过示例让你了解如何在select语句中有效处理空值.NULLIF需要两个参数,参数相同返 ...

  2. Oracle 中 nvl、nvl2、nullif、coalesce、decode 函数的用法详解

    NVL(EXPR1,EXPR2) NVL2(EXPR1,EXPR2,EXPR3) NULLIF(EXPR1,EXPR2) COALESCE(EXPR1,,..,EXPRn) decode ------ ...

  3. python decode函数的用法_Oracle DECODE函数的用法详解

    Oracle DECODE函数 使用方法: 1.比较大小 select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值 sign()函数根据某个值 ...

  4. 【MySQL】MySQL的IFNULL()、ISNULL()、NULLIF()函数用法说明

    文章目录 一.IFNULL() 函数 二.ISNULL() 函数 三.NULLIF() 函数 四.总结 五.相关推荐 一.IFNULL() 函数 MySQL IFNULL 函数是 MySQL 控制流函 ...

  5. mysql的COALESCE函数、NULLIF函数、IFNULL函数

    一. COALESCE函数 返回从左至右第一个非空表达式的值. COALESCE(expr1, expr2, ...., expr_n) select coalesce(null,null," ...

  6. MySQL的(IF、IFNULL、NULLIF、ISNULL)函数

    在MySQL中可以使用IF.IFNULL.NULLIF.ISNULL函数进行流程的控制. 1.IF()函数的使用 在mysql中if()函数的用法类似于java中的三目表达式 IF(expr1,exp ...

  7. Oracle数据库:oracle函数嵌套,nvl函数,nvl2函数,nullif函数,coalesce合并函数

    Oracle数据库:oracle函数嵌套,nvl函数,nvl2函数,nullif函数,coalesce合并函数 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得 ...

  8. ISNULL和NULLIF函数

    1.数据表 创建表语句 CREATE TABLE [dbo].[t_user] ([USER_ID] nvarchar(32) COLLATE Chinese_PRC_CI_AS NOT NULL,[ ...

  9. oracle+函数怎么写if,Oracle NULLIF函数

    Oracle NULLIF函数 Oracle NULLIF函数语法为NULLIF(表达式1,表达式2),如果表达式1和表达式2相等则返回空值,如果表达式1和表达式2不相等则返回表达式1的结果. 注意: ...

最新文章

  1. DNS服务在网络中的应用
  2. MicroPython开发板播放音乐教程
  3. 数据结构——线性表的C语言实现
  4. QML工作笔记-界面登录框设置(方便其他控件居中)
  5. Python for循环语句总结
  6. psql: 致命错误: 用户 postgres Ident 认证失败
  7. IOS自定义UITableViewCell的高亮背景色
  8. vue2.x使用Relation Graph 人物关系图谱
  9. SEO与爱情,十字路口中的抉择
  10. 基于环信的开源即时通讯项目
  11. httpwatch初级使用
  12. 微信小程序:语音变声器支持多种音效与流量主
  13. (2010计本3班-杨蒙)面向对象的C--实现链表操作
  14. 计算机与测控技术专业就业方向,测控技术与仪器专业就业前景与方向(五篇)
  15. 牙医管家口腔管理软件DSD微笑设计3.8版本更新
  16. 宏基因组分箱CheckM评估结果的提取
  17. STS (Spring Tool Suite) 目录和作用初级
  18. 如何使用AD账号登录腾讯企业邮箱?
  19. 组合模式(Bridge Pattern) – 设计模式之结构型模式
  20. 微信投票活动有哪些注意事项?

热门文章

  1. 中国大学MOOC 编译原理 第8讲测验(计分)
  2. ROS探索总结(二)——ROS总体框架
  3. 【Libevent】Libevent学习笔记(三):事件循环
  4. samba 实现不同操作系统之间的文件共享
  5. 树莓派 QT 编程下的硬件中断
  6. java学习笔记 2022.2.11
  7. 如何在VS2008中添加WM_INITDIALOG消息映射
  8. redis设置键的生存时间或过期时间
  9. Pixhawk-串级pid介绍
  10. C/C++:程序的内存分配方式