set nocount on declare @AA table(id int) 
 insert @AA select 1
 insert @AA select 2
 insert @AA select 3
 insert @AA select 4
 insert @AA select 5
 insert @AA select 6
 insert @AA select 7
 insert @AA select 8
 insert @AA select 9  declare    @id int
  --定义一游标,查询相关的记录   
  declare   cursor1   cursor   for       
    select id from @AA                   
  open   cursor1     
  fetch   next   from   cursor1   into   @id
  while  @@fetch_status=0   
  begin   
    if @id=5  continue else print @id       --用continue好像死循环
  fetch   next   from   cursor1   into   @id
   end 
  close   cursor1   
  deallocate   cursor1   
  go  如何输出
1
2
3
4
6
7
8
9

解决方案 »

  1.   

    reture 也是输出
    1
    2
    3
    4
    goto怎么用的
      

  2.   

    楼主有点奇怪,你要输出1到9,你加什么判断啊?set nocount on declare @AA table(id int) 
    insert @AA select 1 
    insert @AA select 2 
    insert @AA select 3 
    insert @AA select 4 
    insert @AA select 5 
    insert @AA select 6 
    insert @AA select 7 
    insert @AA select 8 
    insert @AA select 9   declare    @id int 
      --定义一游标,查询相关的记录  
      declare  cursor1  cursor  for      
        select id from @AA                  
      open  cursor1    
      fetch  next  from  cursor1  into  @id 
      while  @@fetch_status=0  
      begin  
        print @id      --用continue好像死循环 
      fetch  next  from  cursor1  into  @id 
      end 
      close  cursor1  
      deallocate  cursor1  
      go  
      

  3.   

    continue会忽略后面的语句并重新开始执行循环,所以在continue前必须fetch一次set nocount on declare @AA table(id int) 
    insert @AA select 1 
    insert @AA select 2 
    insert @AA select 3 
    insert @AA select 4 
    insert @AA select 5 
    insert @AA select 6 
    insert @AA select 7 
    insert @AA select 8 
    insert @AA select 9   declare    @id int 
      --定义一游标,查询相关的记录  
      declare  cursor1  cursor  for      
        select id from @AA                  
      open  cursor1    
      fetch  next  from  cursor1  into  @id 
      while  @@fetch_status=0  
      begin  
        if @id=5  
        begin
            fetch  next  from  cursor1  into  @id    
            continue 
        end   
        else print @id
      fetch  next  from  cursor1  into  @id 
      end 
      close  cursor1  
      deallocate  cursor1  
      

  4.   

    谢谢楼上的大哥,能不能再看个问题
    http://topic.csdn.net/u/20080730/15/80c6d434-5615-46e1-9432-ff61e4b3101f.html
      

  5.   


    declare @AA table(id int) 
    insert @AA select 1 
    insert @AA select 2 
    insert @AA select 3 
    insert @AA select 4 
    insert @AA select 5 
    insert @AA select 6 
    insert @AA select 7 
    insert @AA select 8 
    insert @AA select 9   declare    @id int 
      --定义一游标,查询相关的记录  
      declare  cursor1  cursor  for      
        select id from @AA                  
      open  cursor1    
      fetch  next  from  cursor1  into  @id 
      while  @@fetch_status=0  
      begin  
        if @id<>5  print @id      --用continue好像死循环 
      fetch  next  from  cursor1  into  @id 
      end 
      close  cursor1  
      deallocate  cursor1  
      go  /*
    1
    2
    3
    4
    6
    7
    8
    9
    */
    楼主不要执行本次循环,加个条件限制就好了,如这里 @id<>5 它就不执行数据处理了