解决方案 »

  1.   

    利用sign获取数字的正负号判断即可
    decode(sign(cgjg),-1,0,cgjg)
      

  2.   

    case when也可以
    case when cgjg<0 then 0 else cgjg end
      

  3.   


    SELECT t1.YPTBDM,t1.YPLSDM,t1.ypcpm,
           decode((SELECT MIN(to_number(b.gzcsz))
             FROM tb_ypwjgz_bdk a, tb_ypwjgz_bdkmx b 
            WHERE a.ypwjbdid = b.ypwjbdid AND a.yptbdm = t1.YPTBDM AND b.gzlx = '10'),'-1','0') cgjg
      FROM v_yppg_fbk t1原数据怎么显示 谢谢了~ 
      

  4.   

    SELECT t1.YPTBDM,t1.YPLSDM,t1.ypcpm,
           (SELECT decode(sign(MIN(to_number(b.gzcsz))),-1,0,MIN(to_number(b.gzcsz)))
             FROM tb_ypwjgz_bdk a, tb_ypwjgz_bdkmx b 
            WHERE a.ypwjbdid = b.ypwjbdid AND a.yptbdm = t1.YPTBDM AND b.gzlx = '10') cgjg
      FROM v_yppg_fbk t1
      

  5.   


    -- LZ 可以考虑一下 greatest 函数,这个是取大值、
    -- 例子:
    select greatest(0,10) , greatest(-10,0) from dual -- 你就得这样用:
    select greatest(cgjg,0) ...