关于decode的用法,最好举个详细的例子。

解决方案 »

  1.   

    decode(value, search_value, result, default_value),用value与search_value比较,如果相等返回result,否则返回default_value。例子请参考:
      

  2.   

    解释上面的例子,如果product_type_id ="1" 时候,就取"书"  ="2" 时候,就取"视频"  后面一样,
    如不等于,1,2,3,4 就取"杂志"
      

  3.   

    等同于,case when的用法          
      

  4.   

    这个问题问下百度就可以了,讲的很清楚
    一下内容来自百度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函数具备大于、小于或等于功能。
      

  5.   


    [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>
      

  6.   

    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