declare @i int
declare @sum intset @i=1
set @sum=0
sql写100以内的奇数和
while @i<=100
begin
 if @i%2=0
   continue
set  @sum=@sum+@i  if @i=100
   begin
      print '100以内奇数和为'+@sum
      break
   end
set @i=@i+1
end
我的查询器查询一直不停止,但是语法没有造成死循环啊?

解决方案 »

  1.   

    declare @i int
    declare @sum intset @i=0
    set @sum=0
    --sql写100以内的奇数和
    while @i<=100
    begin
    set @i=@i+1
    if @i%2=0
    continue
    ELSE
    set  @sum=@sum+@i
    --if @i=100
    --   begin
    --      print '100以内奇数和为'+@sum
    --      break
    --   endend
    print '100以内奇数和为' + ' '+ CAST(@sum AS VARCHAR(100))这样就可以了
      

  2.   

    if @i%2=0
       continue这里出错了 你continue后 @i还是不变,就死循环了
      

  3.   

    你这样是死死循环的,关键是在set @i=@i+1 上,

    if @i%2=0
    continue
    时,@i是从顶上取值,所以set @i=@i+1要放在最上面
      

  4.   

    declare @i int
    declare @sum intset @i=1
    set @sum=0
    --sql写100以内的奇数和
    while @i<=100
    begin
     if @i%2 !=0
    set @sum=@sum+@i
     if @i=100
       begin
          print '100以内奇数和为'+cast(@sum as varchar)
          break
       end
    set @i=@i+1
    end
    --2500
      

  5.   

    借LZ的贴问下
    bill024(咖啡熊)兄:
    我上次忘记在哪看到你回了一个贴,是算SQL语句,CPU用了多少时间,和SQL执行用了多少时间
    有两条命令,是什么啊?请指教下
      

  6.   

    select top 50 a=identity(int,1,2) into #table_Pqs from sysobjects a,sysobjects bselect sum(a) from #table_Pqsdrop table #table_Pqs
      

  7.   

    本人是新手,我想问一下,奇数和本身可以用数列:当@i<=50时,@sum=2*@i-1,@i++,用一个for循环 来计算吗?
      

  8.   

    if @i%2=0
       continue当为偶数是,@i的值就一值不会变,这样就造成死循环了
      

  9.   

    偶用数列做一下.declare @i int
    declare @sum intset @i=1
    set @sum=0
    --sql写100以内的奇数和
    while @i<=50
    begin
      set @sum=@sum+2*@i-1
      set @i=@i+1
    end
    print '100以内奇数和为:'+cast(@sum as varchar)不知道此种算法与上面的哪种要好,计算要快点??