declare @A int 
declare @B int 
select @A = ... 
select @B = ... if @A = 1 
  select @A = 12 
  select @B = @B-1  (注:此句报错,无法执行) 
else 
  select @A = @A-1 逐将语句改为: 
if @A = 1 
  select @A = 12 
else if @A = 1 
  select @B = @B-1 
else 
  select @A = @A-1 
(注:倒是没有报错,但是除第一句外,后面两句都无法执行) 请教该如何写才能达到上述目的,或者用别的语句能达到这种结果也行,谢谢

解决方案 »

  1.   

    declare @A int 
    declare @B int 
    select @A = 1
    select @B = 12if @A = 1 
    begin
      select @A = 12 
      select @B = @B-1  
      end
    else 
    begin
      select @A = @A-1 
      end
      

  2.   

    if @A = 1 
    begin
      select @A = 12 
      select @B = @B-1  (注:此句报错,无法执行) 
    end
    else 
      select @A = @A-1 
      

  3.   

    declare @A int 
    declare @B int 
    select @A = 1
    select @B = 2if @A = 1 
      begin
        select @A = 12 
        select @B = @B-1  --(注:此句报错,无法执行) 
      end
    else 
      select @A = @A-1 
      

  4.   

    declare @A int 
    declare @B int 
    select @A =1
    select @B = 2 if @A = 1 
      select @A = 12,@B = @B-1 
    else 
      select @A = @A-1 
      

  5.   

    declare @A int 
    declare @B int 
    select @A =1
    select @B = 2 if @A = 1 
        begin
          select @A = 12 
          select @B = @B-1  
        end
    else 
        begin 
          select @A = @A-1 
        end 
      

  6.   

    加上 begin end 就可以执行了,相当于程序里面的语句块即大括号表示的范围。
      

  7.   

    --多条件分支可以用
    case when 条件1  then  语句1
          when 条件2 then 语句2
          when 条件3 then 语句3
         else '语句4'
    end
      

  8.   

    加上 begin end 就行了.
      

  9.   

    declare @A int 
    declare @B int 
    select @A = 1
    select @B = 2if @A = 1 
      begin
        select @A = 12 
        select @B = @B-1  
      end
    else 
      select @A = @A-1