首页 > 数据库 > mysql教程 > Oracle函数之case和decode的用法区别及性能比较

Oracle函数之case和decode的用法区别及性能比较

WBOY
发布: 2016-06-07 17:17:47
原创
1755 人浏览过

Oracle函数之case和decode的用法区别及性能比较,来实现逻辑判断。Oracle的DECODE函数功能很强,灵活运用的话可以避免多次扫描,从

在Oracle世界,你可以使用:

1)case表达式      或者

2)decode函数

来实现逻辑判断。Oracle的DECODE函数功能很强,灵活运用的话可以避免多次扫描,从而提高查询的性能。而CASE是9i以后提供的语法,这个语法更加的灵活,提供了IF THEN ELSE的功能。

case表达式

case表达式,可分两种,简单和搜索,简单case后接表达式,如:

Oracle函数之case和decode的用法区别及性能比较

对于简单的case需要几点注意:

1)寻找when的优先级:从上到下

2)再多的when,也只有一个出口,即其中有一个满足了expr就马上退出case

3)不能把return_expr和else_expr指定为null,而且,,expr、comparison_expr和return_expr的数据类型必须相同。

Oracle函数之case和decode的用法区别及性能比较

搜索case:

CASE WHEN condition THEN return_expr

[WHEN condition THEN return_expr]

...

ELSE else_expr

END

例子:

用decode可以违反第3NF(行不可再分,列不可再分,列不可重复):列重复

linux

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板