decode的结果能直接应用到该SQL的条件中吗?
有下面这样一个SQL, 
 select      a…….... 
                   decode   (a.flage,   1,sum(a.a1),2.sum(a.a2),3,sum(a.a3))   as   aaa 
 from   a 
 where   a….. 
 group   by   a…… 
       现在的问题是,我想把decode的结果也应用到条件中去,比如decode的结果不为0的部分才输出。   
 对于这样的要求有没有什么办法呢?   
 显然,直接在条件中写下: 
 and   aaa   !=      0       
 这样的条件好象不行。 
 我想用having   好像having也不行, 
 比如      having   (aaa   !=      0      )   
 除此之外还有没有什么办法呢? 
------解决方案--------------------select * from( 
  select  a…….... 
       decode (a.flage, 1,sum(a.a1),2.sum(a.a2),3,sum(a.a3)) as aaa 
 from a ) t 
 where t.aaa != 0 
 group by t.a……   
 不过这么写的话还不如直接写   
 select  a…….... 
       decode (a.flage, 1,sum(a.a1),2.sum(a.a2),3,sum(a.a3)) as aaa 
 from a 
 where decode (a.flage, 1,sum(a.a1),2.sum(a.a2),3,sum(a.a3)) != 0 
 group by a……   
 效率差一倍呢。
------解决方案--------------------恩,人不多.