是所有行的VAR1 ,VAR2,VAR3 比较吗?若是则如下:
最小数的id:
select top 1 id
from t
order by (
case when (case when var1>var2 then var1 else var2 end)>var3
     then (case when var1>var2 then var1 else var2 end)
     else var3 end)
最大数的id:
select top 1 id
from t
order by (
case when (case when var1>var2 then var1 else var2 end)>var3
     then (case when var1>var2 then var1 else var2 end)
     else var3 end) desc

解决方案 »

  1.   

    create table #t(ID int identity(1,1) , VAR1 numeric(10,2) ,VAR2 numeric(10,2),VAR3 numeric(10,2))
    insert #t values(1.2, 2.2, 2.1)
    insert #t values(10, 8, 6)
    insert #t values(4, 5.5, 3)
    select id,
    (select max(var1) from 
    (
    select var1 from #t where id = a.id
    union all select var2 where id = a.id
    union select var3 where id = a.id
    ) aa
    ) as maxVar
    from  #t a/*
    id          maxVar       
    ----------- ------------ 
    1           2.20
    2           10.00
    3           5.50(所影响的行数为 3 行)*/
      

  2.   

    pbsql(风云) 說的很對,  txlicenhe(马可) 的方法也不錯,