select    zhi1 , zhi2 , zhi3  ,zhi4 ,zhi5       from test模拟表 test有 5个字段 分别为zhi1 , zhi2 , zhi3  ,zhi4 ,zhi5     都是integer类型
我 转化成        select   zhi1 ,  zhi2 , zhi6      from testzhi6的数据是 zhi3  ,zhi4 ,zhi5  这三个字段最大的值求 写法 

解决方案 »

  1.   

    select zhi1 , zhi2 , (case when zhi5>(case when zhi3<zhi4 then thi4 else zhi3 end) then zhi5
                               else (case when zhi3<zhi4 then thi4 else zhi3 end) ) as max_345
     from test
      

  2.   

    -- 测试:
    create table test(
      zhi1 number(18,0),
      zhi2 number(18,0),
      zhi3 number(18,0),
      zhi4 number(18,0),
      zhi5 number(18,0)
    );insert into test values(11,23,41,15,88);insert into test values(765,566,12,2,9);select zhi1 , zhi2, zhi3, zhi4, zhi5,
           (case when zhi5>(case when zhi3<zhi4 then zhi4 else zhi3 end) then zhi5
                 else (case when zhi3<zhi4 then zhi4 else zhi3 end)            end ) as max_345
     from test;-- 执行结果:
          ZHI1       ZHI2       ZHI3       ZHI4       ZHI5    MAX_345
    ---------- ---------- ---------- ---------- ---------- ----------
            11         23         41         15         88         88
           765        566         12          2          9         12
      

  3.   

    谢谢  luoyoumou