用decode,greatest or least區分1-50為A,51-100為B,101以上為C
 請幫忙寫一下

解决方案 »

  1.   

    deocde(条件,符合条件1,输出结果1,符合条件2,输出结果2,默认结果)
      

  2.   

    你这个还是用CASE when便当
    case
    when greatest>=1 and greatext<=50
    then 'A'
    when greatest>=51 and greatext<=100
    then 'B'
    greatest>=101 then 'C'
    else null
    end
      

  3.   

    decode 都取的是固定值
    比如说你要greatest=50时输出 a,51时输出B,52时输出C就可以用了
    decode(greatest,50,'A',51,'B',52,'C')
      

  4.   

    case when 和decode在很多情况下达到的目的是一样的但这种情况,还是按照楼上的用法比较好
      

  5.   

    使用decode 默認關係運算 是 ‘=’‘is’
    decode(a,b,1,c,2,3)
    if a=b then
      return 1;
    elsif a=c then
      return 2;
    else
      reurn 3;
    end if;
    deocde(判斷對象,符合条件1,输出结果1,符合条件2,输出结果2,默认结果)
      

  6.   

    decode用法:
    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函数具备大于、小于或等于功能。 
    decode()函数使用技巧 
    •含义解释: 
    decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) 
    该函数的含义如下: 
    IF 条件=值1 THEN 
    RETURN(翻译值1) 
    ELSIF 条件=值2 THEN 
    RETURN(翻译值2) 
    ...... 
    ELSIF 条件=值n THEN 
    RETURN(翻译值n) 
    ELSE 
    RETURN(缺省值) 
    END IF