deptid  man women  sexPercent
  1     0   1       0:1
  2     1   0       1:0
  3     2   4       1:0.5
  4     6   10      1:1.66 正常情况下是 男比女 为 1:xx
如果男为0  则是 0:xx出来的数据如上显示,如何显示性别比例成上面那样呢 ,请大家帮帮忙啊 ,谢谢!

解决方案 »

  1.   

    deptid  man women  sexPercent
      1     0   1       0:1
      2     1   0       1:0
      3     2   4       1:0.5
      4     6   10      1:1.66 这个不就是要的结果么。
      

  2.   

    我这样写了一下你看看:
    select id,man,woman,
           case when man =0 then
             0||':'||woman
             when woman = 0 then
              man||':'||0
               else to_char(round(woman/man,2))
                 end 
     from information ;
    这只是思路,你可以在摸索一下,洗澡睡觉咯。累呀。
      

  3.   

    select deptid,man,women,decode(man,0,0||':'||women,1||':'||round(women/man,2)) from table1 
      

  4.   

    直接写一个函数f(man,woman) 返回字符串:1:round(woman/man,2)。之前在做一下关于0的判断,就好了呀
      

  5.   

    select deptid,man,women,decode(man,0,to_char(0||':'||women),to_char(1||':'||round(women/man,2))) from table1 
      

  6.   

    select deptid  , man,women, case when man =0 then
      0||':'||women  when women= 0 then
      man ||':'||0 
      when man <>0 or women<>0 then
    '1'||':'||to_char(round(man /women,2),'0.0')
      end sexPercent from Table