有三个字段,col1, col2, col3,如下图所示,请问怎么返回一个字段,值是这三个字段的最大值?
Table1
ID col1 col2 col3
1 10 11 12
2 21 22 20
3 32 30 31
要求得到结果:
ID MaxCol
1 12
2 22
3 32

解决方案 »

  1.   

    你用的是什么数据库?Access OR Sql server?
      

  2.   

    select IIF(L1>L2,L1,L2) AS M1,IIF(M1>L3,M1,L3) AS M2 FROM tbl1这是Access的写法,测试通过,Sql server 2000 中好像没有IIF,有 Case 你可以参照来写。
      

  3.   

    SELECT  [ID] , MAX(col1) AS MaxCol FROM (
    SELECT [ID] , col1 FROM Table1
    UNION ALL
    SELECT [ID] , col2 FROM Table1
    UNION ALL
    SELECT [ID] , col3 FROM Table1
    ) A GROUP BY [ID]
      

  4.   

    SELECT  [ID] , MAX(col1) AS MaxCol FROM (
    SELECT [ID] , col1 FROM Table1
    UNION ALL
    SELECT [ID] , col2 FROM Table1
    UNION ALL
    SELECT [ID] , col3 FROM Table1
    ) A GROUP BY [ID]
    内联!
      

  5.   

    另外提供一条SQL语句SELECT [id], CASE WHEN COL1 >COL2 and col1 > col3  THEN COL1 
                      when col2>col1 and col2 > col3 then col2
                 else
                      col3
                 end  as MAXCOL
                      from table1