2013-07-02 32 views
1
SELECT 
     SUM (
      CASE 
       WHEN pop.usertype=1 THEN pop.useramount 
       WHEN pop.usertype=2 THEN 0-pop.useramount 
      END)   
    FROM 
     popular pop 
; 

如何将此语句转换为DECODE函数?在Oracle SQL中将CASE函数更改为DECODE函数

我已经试过这(和其他轻微的变化) - 但我似乎总是得到不同的结果..

SELECT 
     SUM (
      DECODE(pop.usertype,'1', 'pop.useramount', 
           '2', '0-pop.useramount') 
      )   
    FROM 
     popular pop 
; 

我试图理解DECODE函数更好,但我真的很困惑为什么这不起作用?

回答

1

尝试删除'如下

SELECT 
     SUM (
      DECODE(pop.usertype,'1', pop.useramount, 
           '2', 0-pop.useramount) 
      )   
    FROM 
     popular pop 
;