select  binglihao,xingming, 
MAX(DECODE(RN, 1, jine, NULL)) 例1, 
MAX(DECODE(RN, 2, jine, NULL)) 例2, 
MAX(DECODE(RN, 3, jine, NULL)) 例3, 
MAX(DECODE(RN, 4, jine, NULL)) 例4
from 
(
select binglihao,xingming,jine
  ,row_number() over(partition by xingming order by xingming) rn,count(*) over()
 from m_yujiaojin2008  
) group by  binglihao,xingming红色部分,可能有10列 100列,具体未定,目前要怎么实现,显示n列?

解决方案 »

  1.   

    用动态SQL。用字符串拼成你上面形式的SQL,然后再动态执行
      

  2.   

    定义一个程序块: declare
       v_string varchar2(500):=''; 
     begin
       v_string:=v_string||'select  binglihao,xingming';
       for i in 1..10 loop
           v_string:=v_string||',MAX(DECODE(RN, '||i||', jine, NULL)) 例'||i;
       end loop;  
       v_string:=v_string||' from ( select binglihao,xingming,jine ,
                 row_number() over(partition by xingming order by xingming) rn,
                 count(*) over() from m_yujiaojin2008 ) group by  binglihao,xingming'; 
       execute immediate v_string;
     end;
      

  3.   

    查出总量总是可以的就循环多少次+动态SQL有空我帮你写2方法还是写的出来的 
    礼拜天 反正要加班
    啊 啊 可是有比赛啊
    十一月份 6/9
      11月 2日 8:30  火箭 主场 俄克拉荷马 
      11月 5日 8:30  火箭 主场 凯尔特人 
      11月 7日 10:30 火箭 客场 开拓者
      11月 8日 9:30  火箭 客场 快船
      11月10日 9:30  火箭 客场 湖人
      11月13日 10:30 火箭 客场 太阳
      11月15日 8:30  火箭 客场 马刺
      11月16日 8:30  火箭 主场 黄蜂 
      11月18日 8:00  火箭 客场 俄克拉荷马
      11月20日 8:00  火箭 主场 小牛 
      11月22日 7:00  火箭 客场 奇才
      11月23日 7:00  火箭 客场 魔术
      11月25日 7:30  火箭 客场 热火
      11月27日 8:30  火箭 主场 步行者 
      11月30日 8:30  火箭 主场 马刺