度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1272|回复: 2
打印 上一主题 下一主题

[分享] oracle中COALESCE()函数介绍

[复制链接]

348

主题

3572

帖子

9376

积分

论坛元老

Rank: 8Rank: 8

积分
9376
跳转到指定楼层
楼主
发表于 2020-4-2 23:46:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 万望 于 2015-11-2 23:47 编辑

COALESCE语法
COALESCE(expr1, expr2...exprn)
解释

COALESCE返回参数列表中第一个非空表达式。必须指定最少两个参数。如果所有的参数都是null,则返回null。
Oracle使用短路运算,它依次对每个表达式求值判断它是否为空,而不是对所有表达式都求值后在判断第一个非空值。
COALESCE函数是NVL函数的一个扩展。

可以使用COALESCE函数替换一个类ASE语句,例:

COALESCE(expr1, expr2)

等价于

CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END

同样的

COALESCE(expr1, expr2, ..., exprn)

当n>=3时等价于

CASE WHEN expr1 IS NOT NULL THEN expr1    ELSE COALESCE (expr2, ..., exprn) END
例子

下面的例子给所有的产品按list_price打9折,如果没有list_price,就按最低价MIN_PRICE算。 如果也没有MIN_PRICE,那么sale就是5.

  1. SELECT product_id, list_price, min_price,
  2.        COALESCE(0.9*list_price, min_price, 5) "Sale"
  3.   FROM product_information
  4.   WHERE supplier_id = 102050
  5.   ORDER BY product_id;
复制代码
结果:
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复

使用道具 举报

348

主题

3572

帖子

9376

积分

论坛元老

Rank: 8Rank: 8

积分
9376
沙发
 楼主| 发表于 2020-4-2 23:48:17 | 只看该作者
洗洗睡了
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

78

主题

634

帖子

1598

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1598
板凳
发表于 2020-4-3 09:37:29 | 只看该作者
这个函数还有点意思。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-12-22 22:38 , Processed in 0.131478 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表