2013-07-02 5 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 
;