积木首页 - 学院 - 软件测试 - 技术百科 - 问答 - 黄页 - 手册 - 站长工具 - 社区
登录 | 注册
积木技术社区 » Oracle » Oracle中case语句与decode()方法的区别?
打印 楼主:远山的呼唤 发表于 2011-01-15 10:59 [回复25次/有效22个,浏览1171次]

Oracle中case语句与decode()方法的区别? [精]

Oracle中case语句与decode()方法有那些区别呢?现在除了知道它们一些性质上的区别外,不清楚它们还有什么区别,功能上面它们的功能似乎是一样的.大家说说各自的感受吧...
2楼 发表于 2011-01-15 11:14
学习了
3楼 发表于 2011-01-15 11:26
没有什么大的区别!要用表达式的都是case when!
4楼 发表于 2011-01-15 11:38
根據個人在oracle 8.1.7中應用,談一下經驗.
case when 語句可以做的 decode()語句都可以實現.
但是在oracle 8.1.7中存儲過程中不識別case when 語句(不知道後面的版本是否也有限制).
case when 中用in的話= decode(字段,條件1,值1,條件2,值2.....)
case when 中用>或字段2時的值,0,字段1=字段2時的值,-1,字段1
5楼 发表于 2011-01-15 11:46
decode只能支持等于, case可以大于小于等于, case功能强些
6楼 发表于 2011-01-15 12:12
case 里可以写>,in 等表达式,decode只是=
本人用decode比较多
8楼 发表于 2011-01-15 12:39
建函数索引的时候用decode比较好,oracle会自动转换case when导致无法使用到索引哦
9楼 发表于 2011-01-15 13:13
case when可以判断多个条件,功能更加强大,decode判断单个条件好一点,
10楼 发表于 2011-01-15 13:40
case的功能更强
12楼 发表于 2011-01-15 14:38
使用场合有点特殊。
13楼 发表于 2011-01-15 14:50
case在SQL中有两种写法,先建立一个表
create table salgrade(grade int, sal int);
insert into salgrade values(1,1000);
insert into salgrade values(2,2000);
insert into salgrade values(3,3000);
commit;
第一种写法,简单写法:
select grade,sal,
case grade
when 1 then 'low'
when 2 then 'middle'
else 'high'
end
from salgrade;
第二种写法,查找写法:
SELECT grade,sal,
case when sal
14楼 发表于 2011-01-15 15:43
当decode满足不了时就用case when.
15楼 发表于 2011-01-15 15:59
用幾次 其實都一樣,有空分析分析效率怎樣差別。
16楼 发表于 2011-01-15 16:33
case when 所有的数据库都通用
decode oracle语法,功能都差不多
不过习惯了case when的写法
17楼 发表于 2011-01-15 17:15
简单说,decode中的if...then之后的只能是变量或具体的值,不能是表达式,是不是这个意思?
18楼 发表于 2011-01-15 17:55
继续学习
19楼 发表于 2011-01-15 18:13
case可以用多个不同的字段来进行判断。
case的功能强与decode,
20楼 发表于 2011-01-15 18:52
书上还说了一点:case 表达更清晰,而且它与ansi兼容,已成为sql/92标准的一部分
实现原理差不多,case更强大
21楼 发表于 2011-01-15 18:57
回7楼,是这样,正如4楼所说: case 里可以写>,in 等表达式,decode只是=
22楼 发表于 2011-01-15 19:14
case 里可以写>,in 等表达式,decode只是=
标题:
内容:

PHP: PHP技巧 - PHP基础 - PHP实例 - PHP错误代码 - 正则表达式 - 热门脚本语言: DOS命令 - vbs - CSS/HTML - python - perl - ruby - shell编程 - Powershell

JS: node.js - JS基础 - extjs - jQuery - JavaScript技巧

网址导航成语大全积木 TinyMCE 服务邮箱: Gimoohr(#)gmail.com
Copyright © 2008 Gimoo.Net  京ICP备05050695号