而是从另一个表里取的一个结果集.能说一下decode的值和你的结果集之间的关系吗?就是说由什么值变成什么值。

解决方案 »

  1.   

    SQL> select decode(1,(select 1 from dual),'true','false') from dual;DECOD
    -----
    true已用时间:  00: 00: 00.31
    SQL>
      

  2.   

    楼上的处理,解决的是select 1 from dual --返回一行的情况.
    但是,我现在,那个结果集是多行的
    sum(decode(a.d1,'a',a.n,0)) a,sum(decode(a.d1,'b',a.n,0)) b 
      

  3.   

    你的结果集既然是多行的'a'、'b'、'c'......,那就要有a.dl对应结果集后的值,总不能都是a.n、0吧。
    如果有这个关系,也许不用decode来做也行。
    关键是你那个对应关系
      

  4.   

    回答楼上,我最终需要的结果就是上面写的,a.d1,对应结果就都是a.n,别的写法该怎么写?我主要是不会,只会这么写.
    当初目的就是,需求要求,把本来是多行的结果,横着排成多列的.
    如,最终是
    d4              a      b
    2005-08-01      22     56
    2005-08-02      5      687
    .......
      

  5.   

    又是不定行转列问题,你搜一下吧,用动态sql来做