数据库case when和decode用法以及区别

Posted 蜜桃婷婷酱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库case when和decode用法以及区别相关的知识,希望对你有一定的参考价值。

case when 表达式是一个通用条件的表达式,可以在表达式有效的任何位置使用

select type from kwmis_credit_special_approve

在这里插入图片描述

select 
type,case when type=1 then '项目'
when type=2 then '课题(任务)'
else '' end
from kwmis_credit_special_approve

在这里插入图片描述

decode也是类似的效果

select  decode(n.type, '1', '项目', '2', '课题(任务)') type_name
from kwmis_credit_special_approve n

在这里插入图片描述

他们的区别

1.DECODE 只有Oracle 才有,其它数据库不支持;
2.CASE WHEN的用法, Oracle、SQL Server、 mysql 都支持;
3.DECODE 只能用做相等判断,但是可以配合sign函数进行大于,小于,等于的判断,CASE when可用于=,>=,<,<=,<>,is null,is not null 等的判断;
4.DECODE 使用其来比较简洁,CASE 虽然复杂但更为灵活;

以上是关于数据库case when和decode用法以及区别的主要内容,如果未能解决你的问题,请参考以下文章

SQL中的decode及case when的用法

decode用法

case...when...和decode——oracle

如何正确使用case when表达式 和 decode函数?

sql2005中的case when语句怎么用啊?请写出一个常见的例子

oracle case的这种写法怎么对应多个值 case x when……