0

有没有在光标内搜索的选项?
例如:我有一个包含行号和值的表(MyTable)
,我想复制到另一个表(TestTable),
但是假设如果有一个值 >= 5,那么下一个值,
我想复制应该是 <= 3。
我可以使用这样的东西:

create table TestTable
(row tinyint,
value tinyint)

declare @row tinyint, @value tinyint, @trigger bit
declare test_cursor cursor fast_forward for
select row,value from MyTable order by row
open test_cursor
fetch next from test_cursor into @row,@value
set @trigger = 0
while @@FETCH_STATUS = 0
    begin
        if @trigger = 0
            begin
                insert into TestTable values (@row,@value)
                if @value >= 5 set @trigger = 1
            end
        else if @value <= 3 
            begin
                insert into TestTable values (@row,@value)
                set @trigger = 0
            end
        fetch next from test_cursor into @row,@value
    end
close test_cursor
deallocate test_cursor  

这会起作用,但我的问题是:有没有办法在游标内搜索
<= 3 一次触发 = 1 的下一个值,
而不是每次都一遍又一遍地获取下一行?

4

1 回答 1

2

不,游标不支持您所追求的那种查询。您将不得不访问每个值并在循环中检查它。

于 2013-10-01T15:59:11.807 回答