declare @S nvarchar(50) 
set @s='select Tlanguage'
select   @s=@s+'   ,['+Flanguage+']=sum(case   when   Flanguage='''+Flanguage+''' then  Price else   0   end   )   '   
  from   newTrans 请教各位大哥 这里@s是啥意思 为什么要@s=@s 而且如果把=@s换成='select Tlanguage' 得到的结果不一样 为什么啊?

解决方案 »

  1.   

    @在SQL存储过程里面是局部变量,@@是全局变量
      

  2.   

    如果把@s=@s 换成='select Tlanguage' 得到的结果肯定不一样喇,@S=是表示直接=那结果,@s=@s+'  ,['+Flanguage+']=sum(case  when  Flanguage='''+Flanguage+''' then  Price else  0  end  )  ' 这里表示那结果为@S再加上后面那语句 
      

  3.   

    declare @S nvarchar(50) --声明一个变量
    set @s='select Tlanguage' --给变量赋值
    select  @s=@s+'  ,['+Flanguage+']=sum(case  when  Flanguage='''+Flanguage+''' then  Price else  0  end  )  '  
      from  newTrans 
    -- 第一个@S=SLECT TLANGUAGE,....
     
    --第二个@S='SLECT TLANGUAGE'