oracle 中decode 是啥意思啊,有什么用啊,好晕啊!

 我来答
百度网友3cfa81b
2011-07-18 · TA获得超过444个赞
知道小有建树答主
回答量:412
采纳率:0%
帮助的人:348万
展开全部
DECODE函数是ORACLE PL/SQL的功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功能。DECODE有什么用途呢? 先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在8000元以下的加20%;工资在8000元或以上的加15%,通常的做法是,先选出记录中的工资字段值? select salary into var-salary from employee,然后对变量var-salary用if-then-else或choose case之类的流控制语句进行判断。 如果用DECODE函数,那么我们就可以把这些流控制语句省略,通过SQL语句就可以直接完成。如下:   select decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,salary) from employee 是不是很简洁? DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。初看一下,DECODE 只能做等于测试,但刚才也看到了,我们通过一些函数或计算替代value,是可以使DECODE函数具备大于、小于或等于功能。
yjx_xiaoxin
2011-07-18 · TA获得超过6702个赞
知道大有可为答主
回答量:4618
采纳率:50%
帮助的人:2511万
展开全部
这是Oracle的一个函数,用来实现判断结构的程序功能。具体你可以参考百科词条
http://baike.baidu.com/view/1130040.htm
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangzhiqing999
2011-07-18 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3350万
展开全部
DECODE 条件判断函数, 相当于在 SQL 语句里面,写 IF / ELSE

SQL> SELECT
2 DECODE(GROUPING(sale_item), 1, 'ALL', sale_item) AS iten,
3 SUM(sale_money) AS money
4 FROM
5 sale_report
6 GROUP BY
7 ROLLUP(sale_item);

ITEN MONEY
------ ----------
A 733285
B 2382
C 5738
ALL 741405

以上面这个 DECODE(GROUPING(sale_item), 1, 'ALL', sale_item) 为例子来说
就是 如果 GROUPING(sale_item) = 1 那么 返回 'ALL', 否则返回 sale_item

DECODE 的功能, 可以说是 取代 CASE WHEN 的功能。
下面就是 SQL Server 下, 没有 DECODE 的功能, 用 CASE WHEN 写的

1> SELECT
2> CASE
3> WHEN GROUPING(sale_item) = 1
4> THEN '总'
5> ELSE
6> sale_item
7> END AS item,
8> SUM(sale_money) [money]
9> FROM
10> sale_report
11> GROUP BY
12> sale_item WITH ROLLUP;
13> go
item money
---- ----------------------------------------
A 733285.00
B 2382.00
C 5738.00
总 741405.00

(4 行受影响)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhang_yzy
2011-07-18 · 超过25用户采纳过TA的回答
知道答主
回答量:125
采纳率:0%
帮助的人:67.7万
展开全部
就是 SQLSERVER 中的 case when
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式