语法
COALESCE(expr [, expr ]...)
复制
用途
- 返回参数中第一个非空值;如果所有参数都为null,则函数返回null;
- oracle采用最小化计算原则,逐一计算每个表达式的值,如果非空则返回该表达式的值,如果为null,则继续计算下一个参数表达式的值;并不会提前计算所有表达式的值;
Oracle Database uses short-circuit evaluation. That is, the database evaluates each expr value and determines whether it is NULL, rather than evaluating all of the expr values before determining whether any of them is NULL.
COALESCE (expr1, expr2) 相当于以下case表达式: CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END
复制
COALESCE (expr1, expr2, ..., exprn), for n>=3 相当于: CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE COALESCE (expr2, ..., exprn) END
复制
例子
The following example uses the sample oe.product_information table to organize a clearance sale of products. It gives a 10% discount to all products with a list price. If there is no list price, then the sale price is the minimum price. If there is no minimum price, then the sale price is “5”:
COALESCE(0.9*list_price, min_price, 5)
复制
- 如果list_price不为空,函数返回0.9*list_price的值,
- 如果list_price为空,则继续判断min_price的值,不为空则返回min_price的值,
- 如果list_price和min_price都为空则返回5;
SELECT product_id, list_price, min_price, COALESCE(0.9*list_price, min_price, 5) "Sale" FROM product_information WHERE supplier_id = 102050; PRODUCT_ID LIST_PRICE MIN_PRICE Sale ---------- ---------- ---------- ---------- 2382 850 731 765 3355 5 1770 73 73 2378 305 247 274.5 1769 48 43.2
复制
参考文档
https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions023.htm
最后修改时间:2021-08-16 20:48:39
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
947次阅读
2025-03-17 11:33:53
Oracle DataGuard高可用性解决方案详解
孙莹
403次阅读
2025-03-26 23:27:33
墨天轮个人数说知识点合集
JiekeXu
346次阅读
2025-04-01 15:56:03
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
337次阅读
2025-04-08 09:12:48
Oracle SQL 执行计划分析与优化指南
Digital Observer
305次阅读
2025-04-01 11:08:44
风口浪尖!诚通证券扩容采购Oracle 793万...
Roger的数据库专栏
286次阅读
2025-03-24 09:42:53
Oracle 19c RAC更换IP实战,运维必看!
szrsu
283次阅读
2025-04-08 23:57:08
切换Oracle归档路径后,不能正常删除原归档路径上的归档文件
dbaking
280次阅读
2025-03-19 14:41:51
oracle定时任务常用攻略
virvle
276次阅读
2025-03-25 16:05:19
Oracle NetSuite 客户说|健合(H&H)集团部署 Oracle NetSuite,全面提升全球运营效率
甲骨文中国
256次阅读
2025-03-28 15:00:30