博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
COALESCE操作符
阅读量:7023 次
发布时间:2019-06-28

本文共 714 字,大约阅读时间需要 2 分钟。

一、应用场景

1、购买的零件和本地生产的零件都是零件,尽管多重的实体类型在数据存储上略有不同,但是它们有太多的相同之处,因此通常使用一个表格而不是两个。

所以这是如果我们需要计算零件的实际话费的话,那么他们的计算方式确是更具不同的字段来计算的,比如说本地生产的零件计算方式就只是成本这里用个字段cost表示.

而购买的零件的成本计算方式就大不相同了,它的是零件的销售价(selling price->sp)加上运费(fregit).

 

ok,就是用来干这个的,下面是解决代码:.

COALESCE(cost,sp+fregit) as money

如果当前零件记录的cost为空,也就是当前零件是购买的零件,那么实际花费按照销售价(selling price->sp)加上运费(fregit)的方式来计算

 

上面的只是COALESCE最简单的用途,下面才是它强大的地方,

 

2、强大之处

当COALESCE(expr1,expr2),当COALESCE中的表达式小于3的时候,它就相当于CASE WHEN expr1 IS NOT NULL THEN expr2 END

但是当COALESCE(expr1,expr2,expr3,.......exprn),当里面的表达式大于等于3的时候,那么他就会循环上面的操作,知道执行到里面的某一个表达式,他的值不为NULL为止

CASE WHEN expr1 IS NOT NULL THEN expr1

ELSE COALESCE (expr2, ..., exprn) END

 

转载于:https://www.cnblogs.com/GreenLeaves/p/6543238.html

你可能感兴趣的文章
上拉电阻大小对i2c总线的影响
查看>>
canvas绘图详解-04-矩形
查看>>
测试管理012:结对测试 - 不错的测试实践
查看>>
FusionCharts简单教程(二)-----使用js加载图像和setDataXML()加载数据
查看>>
C# 项目中的 bin 目录和 obj 目录的区别,以及 Debug 版本和 Release 版本的区别
查看>>
使用DataTable作为存储过程的参数
查看>>
Yslow
查看>>
git常用命令
查看>>
java虚拟机:堆内存
查看>>
由strcat函数引发的C语言中数组和指针问题的思考
查看>>
Const使用
查看>>
LeetCode:Plus One
查看>>
学习目标
查看>>
C#三种定时器的实现-转载
查看>>
Nginx的nginx.conf配置文件中文注释说明
查看>>
Java 反射 Method threw 'java.lang.InstantiationException' exception.
查看>>
VMware虚拟机创建安装之后不出现VMnet1和VMnet8虚拟网卡
查看>>
Beam Search
查看>>
xtrabackup单表备份与恢复
查看>>
TSringGrid用法(转)
查看>>