¿Hay alguna opción para buscar dentro de cursor?

Por ejemplo: tengo una tabla(Mitabla) con el número de fila y el valor,

que quiero copiar a otra tabla(TestTable),

pero digamos que si hay un valor >= 5, a continuación, el siguiente valor,

que quiero copiar debe ser <= 3.

Puedo usar algo como esto:

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  

Que va a trabajar, pero mi pregunta es: ¿hay alguna manera para buscar dentro de cursor

para la próxima falue que <= 3 una vez que disparo = 1,

en lugar de buscar el siguiente fila más y más cada vez?

  • A menudo podemos re-escribir un disparo en un conjunto basado en el método. Si usted nos diga exactamente lo que usted está tratando de lograr, a continuación, tal vez una diferente (y mejor] enfoque puede ser proporcionada.
  • Sí, sé que basados en un método sería preferible en la mayoría de los casos, pero no creo que es posible establecer el método basado en este, ahora mismo estoy usando la iteración solución para buscar el siguiente valor adecuado en mi tabla de base, y me pregunto si hay algunas opciones avanzadas en cursor en lugar de ir a la siguiente fila cada vez. Por supuesto, si usted podría pensar en establecer una solución de base para que la consulta sería la mejor.
  • ¿Cómo se define la «siguiente valor adecuado»?
  • Hay un ejemplo en mi pregunta, una vez que exista valor >= 5 siguiente valor adecuado es <= 3

1 Comentario

  1. 2

    No, cursores no admiten el tipo de consulta que usted está después. Usted tendrá que visitar a cada valor y comprobar que en el bucle.

    • Ok gracias, adivine yo estaba esperando escuchar que…

Dejar respuesta

Please enter your comment!
Please enter your name here