读书人

一个简单的sql语句 解决后马上散分 多

发布时间: 2011-12-25 23:21:20 作者: rapoo

一个简单的sql语句 解决后马上散分 谢谢大家了 在线等
我要做的只有一步 就是让每次循环前 where row=@i中的@i自动+1 可是我这样写 @i的值 送不进去 请问该如何解决?

set @i=1

declare cur_tmp1 cursor for

select subj_code,flag,row
from ht_code_flag_table
where row=@i

open cur_tmp1
fetch next from cur_tmp1 into @subj_code,@flag,@row
while (@@fetch_status =0)

begin

print @subj_code

fetch next from cur_tmp1 into @subj_code,@flag,@row
set @i=@i+1



end
close cur_tmp1
deallocate cur_tmp1

[解决办法]
set @i=1

while @i <=MAX..
BEGIN
declare cur_tmp1 cursor for
select subj_code,flag,row
from ht_code_flag_table
where row=@i

open cur_tmp1
fetch next from cur_tmp1 into @subj_code,@flag,@row
while (@@fetch_status =0)

begin

print @subj_code

fetch next from cur_tmp1 into @subj_code,@flag,@row
set @i=@i+1



end
close cur_tmp1
deallocate cur_tmp1
END
[解决办法]
declare @row int
set @i=1

select @row = max(row) from ht_code_flag_table

while @row > = @i
begin
declare cur_tmp1 cursor for
select subj_code,flag,row
from ht_code_flag_table
where row=@i

open cur_tmp1
fetch next from cur_tmp1 into @subj_code,@flag,@row
while (@@fetch_status =0)

begin
print @subj_code
fetch next from cur_tmp1 into @subj_code,@flag,@row
end
close cur_tmp1
deallocate cur_tmp1
set @i = @i + 1
end
[解决办法]
这样改吧

set @i=1

select @subj_code=subj_code,@flag=flag,@row=row
from ht_code_flag_table
where row=@i
while @@rowcount> 0
begin

print @subj_code

set @i=@i+1



end



[解决办法]
--lz想取得从1开始的连续subj_code,这个需求不需要用游标
SET @i=1
WHILE EXISTS (SELECT 1 FROM ht_code_flag_TABLE WHERE row=@i)
BEGIN
SELECT @subj_code=subj_code
FROM ht_code_flag_table
WHERE row=@i

PRINT @subj_code

SET @i=@i+1
END

读书人网 >SQL Server

热点推荐