select (case when 200%60/60.0=0 then (200/60) else (case when 200%60/60.0>0.5 then (200/60+1) else (cast(200/60 as varchar)+'.5') end) end)

解决方案 »

  1.   

    select (case when 200%60/60.0=0 then (200/60) else (case when 200%60/60.0>0.5 then (cast(200/60 as float)+1) else (cast(200/60 as varchar)+'.5') end) end)
      

  2.   

    select (case when cast(200%60/60.0 as int)=0 then (200/60)
     else (case when 200%60/60.0>0.5 then (200/60+1) else (cast(200/60 as varchar)+'.5') end) end)
    cast(200%60/60.0 as int)=0
    虽然这样也不是很准确,但你比较的两个类型不一样
      

  3.   

    select 
    (
    case 
    when 200%60/60.0=0 then convert(varchar,(200/60))
    else (case when 200%60/60.0>0.5 then Convert(varchar, (200/60+1)) else (cast(200/60 as varchar)+'.5') end) 
    end
    )