| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1232 人关注过本帖
标题:关于 游标 的问题
只看楼主 加入收藏
风流上进
Rank: 1
等 级:新手上路
威 望:1
帖 子:63
专家分:0
注 册:2007-7-20
收藏
 问题点数:0 回复次数:15 
关于 游标 的问题
表a
cid res
500:0.5 0
2000:0.3 0
5000:0.2 0
通过游标 更新 表a 使 res 的值为 cid 字段中 “:” 前的值乘以“:”后的值。
更新完的效果如下:
cid res
500:0.5 250 (250=500*0.5)
2000:0.3 600 .....
5000:0.2 1000 .....
谁能给指点一下



搜索更多相关主题的帖子: 游标 
2007-09-28 15:04
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 

[CODE]create table #t(
cid varchar(100),
res float
)
insert into #t values('500:0.5',0)
insert into #t values('2000:0.3',0)
insert into #t values('5000:0.2',0)
go
declare @cid varchar(100),@res float
declare @l varchar(50),@r varchar(50)
declare @k float
declare c cursor
for select cid,res from #t for update of res
open c
fetch c into @cid,@res
while @@fetch_status=0
begin
set @l=left(@cid,charindex(':',@cid)-1)
set @r=substring(@cid,charindex(':',@cid)+1,len(@cid)-charindex(':',@cid))
set @k=cast(@l as float)*cast(@r as float)
update #t set res=@k where current of c
fetch c into @cid,@res
end
close c
deallocate c
select * from #t
drop table #t[/CODE]



我的msn: myfend@
2007-09-28 15:17
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
500:0.5 250.0
2000:0.3 600.0
5000:0.2 1000.0

我的msn: myfend@
2007-09-28 15:17
风流上进
Rank: 1
等 级:新手上路
威 望:1
帖 子:63
专家分:0
注 册:2007-7-20
收藏
得分:0 
purana 好厉害

游标的那个 for 和 fetch 的用法具体的说一下
这两个关键字没有完全搞清楚
谢谢

我是sql菜鸟,谁教我学sql我给他N多Q币 QQ: 353707719 。
2007-09-28 15:44
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 

教程.都有讲到啊..


我的msn: myfend@
2007-09-28 15:51
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
我不厉害.
我学sql server还不到1个月..

我的msn: myfend@
2007-09-28 16:00
风流上进
Rank: 1
等 级:新手上路
威 望:1
帖 子:63
专家分:0
注 册:2007-7-20
收藏
得分:0 
还不到1个月......... 你真让我汗颜 ........

我是sql菜鸟,谁教我学sql我给他N多Q币 QQ: 353707719 。
2007-09-28 16:19
风流上进
Rank: 1
等 级:新手上路
威 望:1
帖 子:63
专家分:0
注 册:2007-7-20
收藏
得分:0 
purana 假如说
表a
cid res
500:0.5 0
2000:0.3 0
5000:0.2 0
res 的值 = 下一条记录的“:”前的值减上一条记录":"前的值,然后再乘以 上一条记录 ":"后的值 怎么用 游标写
表a
cid res
500:0.5 750 (2000-500)*0.5
2000:0.3 900 (5000-2000)*0.3
5000:0.2 0


我是sql菜鸟,谁教我学sql我给他N多Q币 QQ: 353707719 。
2007-09-28 17:07
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 

这是什么需求?


我的msn: myfend@
2007-09-28 17:48
风流上进
Rank: 1
等 级:新手上路
威 望:1
帖 子:63
专家分:0
注 册:2007-7-20
收藏
得分:0 
purana 那样的话能实现么?

我是sql菜鸟,谁教我学sql我给他N多Q币 QQ: 353707719 。
2007-09-29 08:36
快速回复:关于 游标 的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040838 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved