SQL中游标的使用
2005-03-26 18:00
323 查看
declare @studentnum varCHAR(9),@course varchar(10),@achievement tinyint,@classorder tinyint
declare @pstudentnum varchar(9),@allcourse varchar(60)
declare allachievement cursor for
select studentnum,course,achievement,classorder
from tempachievement
where indate=convert(char(10),getdate(),120) and achievement>0
order by studentnum,course
OPEN allachievement
FETCH NEXT FROM allachievement
INTO @studentnum, @course, @achievement, @classorder
set @pstudentnum=@studentnum
set @allcourse=''
WHILE @@FETCH_STATUS = 0
BEGIN
if (@pstudentnum <> @studentnum)
begin
if (len(@allcourse)>0)
begin
insert achievementaddfields(studentnum,addfields)
values(@pstudentnum,@allcourse)
--set addfields=@allcourse
--where studentnum=@pstudentnum
end
set @pstudentnum=@studentnum
--set @allcourse=@course+@achievement+@classorder
--set @allcourse=''
set @allcourse=rtrim(@course) + ',' + ltrim(str(@achievement)) + ',' + ltrim(str(@classorder)) + ';'
FETCH NEXT FROM allachievement
INTO @studentnum, @course, @achievement, @classorder
end
else
begin
set @allcourse=@allcourse + rtrim(@course) + ',' + ltrim(str(@achievement)) + ',' + ltrim(str(@classorder)) + ';'
FETCH NEXT FROM allachievement
INTO @studentnum, @course, @achievement, @classorder
end
end
if (len(@allcourse)>0)
begin
insert achievementaddfields(studentnum,addfields)
values(@pstudentnum,@allcourse)
--set addfields=@allcourse
--where studentnum=@pstudentnum
end
CLOSE allachievement
DEALLOCATE allachievement
declare @pstudentnum varchar(9),@allcourse varchar(60)
declare allachievement cursor for
select studentnum,course,achievement,classorder
from tempachievement
where indate=convert(char(10),getdate(),120) and achievement>0
order by studentnum,course
OPEN allachievement
FETCH NEXT FROM allachievement
INTO @studentnum, @course, @achievement, @classorder
set @pstudentnum=@studentnum
set @allcourse=''
WHILE @@FETCH_STATUS = 0
BEGIN
if (@pstudentnum <> @studentnum)
begin
if (len(@allcourse)>0)
begin
insert achievementaddfields(studentnum,addfields)
values(@pstudentnum,@allcourse)
--set addfields=@allcourse
--where studentnum=@pstudentnum
end
set @pstudentnum=@studentnum
--set @allcourse=@course+@achievement+@classorder
--set @allcourse=''
set @allcourse=rtrim(@course) + ',' + ltrim(str(@achievement)) + ',' + ltrim(str(@classorder)) + ';'
FETCH NEXT FROM allachievement
INTO @studentnum, @course, @achievement, @classorder
end
else
begin
set @allcourse=@allcourse + rtrim(@course) + ',' + ltrim(str(@achievement)) + ',' + ltrim(str(@classorder)) + ';'
FETCH NEXT FROM allachievement
INTO @studentnum, @course, @achievement, @classorder
end
end
if (len(@allcourse)>0)
begin
insert achievementaddfields(studentnum,addfields)
values(@pstudentnum,@allcourse)
--set addfields=@allcourse
--where studentnum=@pstudentnum
end
CLOSE allachievement
DEALLOCATE allachievement
相关文章推荐
- 【SQL】使用游标进行不同数据库的…
- ORACLE动态游标及动态SQL使用实例
- sql 中游标的使用
- SQL游标原理和使用方法
- SQL游标原理和使用方法
- Sql游标使用2例
- SQL 存储过程里读取表内容 游标fetch的使用
- SQL 游标使用实例
- sql 游标使用笔记
- PL/SQL 第9章 使用游标
- PL/SQL游标的使用
- sql中游标的使用
- SQL游标的简单使用
- SQL 游标的使用(更新数据)
- SQL 不同服务器之间的数据通信和游标使用
- 在PL/SQL中使用游标、动态sql和绑定变量的小例子
- 在PL/SQL中使用带参数的游标
- SQL游标原理和使用方法
- Oracle笔记 九、PL/SQL 游标的使用
- PL/SQL中游标和游标变量的使用