永发信息网

在sqlserver2000中,用什么语句能求出表中一行的最大值?

答案:4  悬赏:0  手机版
解决时间 2021-04-16 06:06
能否示例说明?
最佳答案
MAX是求一列的最大值,不是求一行的最大值。
事实上,所有的集计函数和大小关系函数都是针对于列设计的。

如果希望在一行里面做操作,我能想到的唯一方法是用游标
针对于你这个问题,你需要用到两个游标
第一个游标用来遍历每条记录
第二个游标用来寻找每条记录的最大值
找到以后,依次存储,这样就得到表的一行的最大值了

答案补充:
上面的答案有一个问题 ,第二个游标没法实现,目前我给出一个在知道列数和列名的情况下的例子。更加通用的需要再考虑
例:
假设A表里面有x,y,z3列,并且这3列都是int型列
create table ##temp(max_value int)
declare @x int
declare @y int
declare @z int
declare @max int
declare curRowMax cursor for select x,y,z from A
open curRowMax
fetch next from curRowMax into @x,@y,@z
while @@fetch_status= 0
begin
set @max=@x
if(@y>@max) set @max=@y
if(@z>@max) set @max=@z
insert into ##temp values(@max)
fetch next from curRowMax into @x,@y,@z
end
select * from ##temp
没有SQL环境,所以做不了语法检查,如果有语法上的低级错误,请原谅。
但大概的逻辑大概是这样的。
全部回答
select max(...) from table
因为你的表已经存在,所以你插入非空的字段必然会导致你的表存在问题! 之前的数据加入新的字段后,所存在的数据必定是空值,可是该字段又不能是空值。 而sql server2000中规定插入新的字段必须满足条件: 1 所插入的字段允许空值! 2 所插入的字段存在默认值! 所以可是使用这样设置: alter table tbl_users add a char(10) not null default 0; 就是在后面加上一个默认值,楼主看情况自己设置吧。
Maz()
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
吉林省锦达电子有限公司在哪里啊,我有事要去
祝福事事顺利的成语,4个字的祝福成语
她到底怎么了????
炫舞舞团徽章时间可以叠加吗?
我能下载跑跑跑卡丁车吗?
求一款手游,乙女向。
QQ空间里的魔法卡片怎么看卡片等级
高朗乡地址有知道的么?有点事想过去
尚尚品在什么地方啊,我要过去处理事情
成熟一点的情话,成熟男人最想听的情话
呼伦贝尔3月天气一般多少度?
关于杜字跟杰字的网名?
怎么设置无限连路由Intel(R) WiFi Link 5100
哪些原因会使MP5充电充不进去?
2008下半年至2009年上半年中外时政
推荐资讯
奥比岛 星际列车站里。几时才可以售票?
为什么有些好友映象会自动消失?
关于DNF的COF
穿磁疗鞋可以增高吗
宠物猪猪好养吗?
多姿彩服饰地址有知道的么?有点事想过去
就算是believe 中间也藏着一个live
不是也不是更不是打一迷语
急求一首轻音乐的名字!!!!!!!
我的诺基亚QD手机装上内存卡不读卡是怎么回事
7米悬空梁上面有3层承重墙和屋面怎样配筋
香吧佬扒鸡店我想知道这个在什么地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?