日期:2014-05-17 浏览次数:21098 次
解释上面的例子,如果product_type_id ="1" 时候,就取"书" ="2" 时候,就取"视频" 后面一样, 如不等于,1,2,3,4 就取"杂志"
------解决方案--------------------
等同于,case when的用法
------解决方案--------------------
这个问题问下百度就可以了,讲的很清楚
一下内容来自百度http://baike.baidu.com/view/1130040.htm
DECODE函数是ORACLE PL/SQL的功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功能。DECODE有什么用途呢? 先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在8000元以下的加20%;工资在8000元或以上的加15%,通常的做法是,先选出记录中的工资字段值 --->select salary into var-salary from employee,然后对变量var-salary用if-then-else或 case when then else end之类的流控制语句进行判断。 如果用DECODE函数,那么我们就可以把这些流控制语句省略,通过SQL语句就可以直接完成。如下: select decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,salary*1.15) from employee 是不是很简洁? DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。初看一下,DECODE 只能做等于测试,但刚才也看到了,我们通过一些函数或计算替代value,是可以使DECODE函数具备大于、小于或等于功能。
------解决方案--------------------
[SYS@myoracle] SQL>WITH t1 AS( 2 SELECT 1 a FROM dual UNION ALL 3 SELECT 2 a FROM dual UNION ALL 4 SELECT 3 a FROM dual UNION ALL 5 SELECT 4 a FROM dual) 6 SELECT a,DECODE(a,1,'此值为1',2,'此值为2',3,'此值为3','此值不为1,2,3') ans 7 FROM t1; A ANS ---------- ------------- 1 此值为1 2 此值为2 3 此值为3 4 此值不为1,2,3 [SYS@myoracle] SQL>
------解决方案--------------------
顶楼上所有……
楼主肯定是来散分的……
------解决方案--------------------
baidu一下或google一下一堆
------解决方案--------------------
DECODE函数的作用:它可以将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。
区别于SQL的其它函数,DECODE函数还能识别和操作空值。
语法如下:
DECODE(control_value,value1,result1[,value2,result2…][,default_result]);
control _value
试图处理的数值。DECODE函数将该数值与后面的一系列的偶序相比较,以决定返回值。
value1
是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应
result1
是一组成序偶的结果值。
default_result 未能与任何一个值匹配时,函数返回的默认值。
示例如下:
select decode( x , 1 , ‘x is 1 ’, 2 , ‘x is 2 ’, ‘others’) from dual
当x等于1时,则返回‘x is 1’。
当x等于2时,则返回‘x is 2’。
否则,返回others’。
http://www.enet.com.cn/article/2008/0416/A20080416229912.shtml