例如:
8 6 9
5 4 1
取
9 5
MAX只能取字段中最大值不是一条记录中
------解决方案--------------------
create table test(
id int,
a int,
b int,
c int
)
declare @t table(id int,num int)
insert into test
select 1,8,6,9 union all
select 2,5,4,1
insert into @t
select id,a as num from test
union all
select id,b as num from test
union all
select id,c as num from test
select max(num) from @t group by id
drop table test
----结果----------
1 9
2 5
是这样?
------解决方案--------------------
declare @table_pqs table(id int,num1 int,num2 int,num3 int)
insert into @table_pqs
select 1,8,6,9 union all
select 2,5,4,1
select case when num1> =num2 and num1> =num3 then num1
when num2> num1 and num2> =num3 then num2
when num3> num1 and num3> num2 then num3
end as max
from @table_pqs
------解决方案--------------------
引用:
declare @table_pqs table(id int,num1 int,num2 int,num3 int)
insert into @table_pqs
select 1,8,6,9 union all
select 2,5,4,1
select case when num1> =num2 and num1> =num3 then num1
when num2> num1 and num2> =num3 then num2
when num3> num1 and num3> num2 then num3
end as max
from @table_pqs
为什么上面的语句在我这边的机子上显示
“
服务器: 消息 137,级别 15,状态 2,行 5
必须声明变量 '@table_pqs '。
”
这样的错误啊!
------解决方案--------------------
寫個交叉表查詢,使表行列換過來,
#t
col1 col2
7 8
9 3
2 7
然後 select a = (select max(col1) from #t),b = (select max(col2) from #t)
------解决方案--------------------
不怕影响速度
可以行转列
然后
select max(?),max(??),...