各位大侠:
    oracle中有字段project,不管有多少条记录,当值为“合计”时都放置在最下面,应如何排序?
    记录条数是根据查询条件实时变化的。 
感激不尽,在线等! oracle排序

解决方案 »

  1.   

    select project from tablename
    order by case project
    when '合计' then 0 end  desc;
      

  2.   

    project
    1基建项目
    基建项目小计
    2城建项目
    城建项目小计
    项目
    项目小计
    合计
    想达到如上效果,
    order by case project
    when '合计' then 0 end  desc;
    是可以让合计在最下面,可是别的project就会乱掉了,
    希望是按project排序后,合计在最后
      

  3.   

    这样应该可以吧,没有环境,楼主试试吧
    select 字段
      from tab_1
     where 字段project <> “合计”
    union all
    select 字段
      from tab_1
     where 字段project = “合计”
      

  4.   


    这些值本来就是union起来的  分三部分  project,  project||小计,  合计
      

  5.   


    那你改成
    order by case project
    when '合计' then 9999 end 这样你应该不可能会有9999个吧!这样应该在最后面了!
      

  6.   


    那好像就更容易了啊,把union换成union all 应该就可以了吧。但是有一点要注意,你的业务上有没有重复数据,union all是不能去掉重复行的。union和union all的区别如下:Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
     
    Union All,对两个结果集进行并集操作,包括重复行,不进行排序;
      

  7.   

    Order by decode(project,'合计',1,0) ,project
    先把值为合计的行放到下面,再按项目排序。