如题,谢谢达人帮忙解决

解决方案 »

  1.   

    自己写一个函数maxnum,传两个值进去,返回较大的值,然后嵌套调用该函数
    select maxnum(col4,maxnum(col3,maxnum(col1,col2))) from tabname
      

  2.   

    求某几列中最大值
    select greatest(col1,col2,col3...) from tablename;
    求某几列中最小值
    select least(col1,col2,col3...) from tablename;
      

  3.   

    你要比较的字段有几个啊?
    如果少可以用CASE WHEN 试试.你要横向比较,还真怪呢!
      

  4.   

    是横向比较,greatest是纵向的吧,还是自己写函数吧
      

  5.   

    不知道楼上所说的横向和纵向是什么意思,max()才应该是对纵列进行比较,自己比较下吧:SQL> select c1,c2,c3 from c;        C1         C2         C3
    ---------- ---------- ----------
             8          3          4
             5          6          2
             6          4         11SQL> select max(c1),max(c2),max(c3) from c;   MAX(C1)    MAX(C2)    MAX(C3)
    ---------- ---------- ----------
             8          6         11SQL> select c1,c2,c3,greatest(c1,c2,c3),least(c1,c2,c3) from c;        C1         C2         C3 GREATEST(C1,C2,C3) LEAST(C1,C2,C3)
    ---------- ---------- ---------- ------------------ ---------------
             8          3          4                  8               3
             5          6          2                  6               2
             6          4         11                 11               4
      

  6.   

    楼上正解,用greatest()和least()两个函数就可以。
      

  7.   

    如果要在几个列 多个行的数据中找到最大的
    就这样:
    select greatest(max(a),max(b)) from t
    不过这样什么索引也用不上,只会FullTableAccess。
    下面的 就可以用索引了
    select max(c) from 
    (
      select max(a) c from t
      union all
      select max(b) c from t
    )
      

  8.   

    随便请教一下 greatest_lb(x[,y],[,…]) 说是返回标签列表中的最大值
    不知道怎么用 '标签' 是什么意思????