declare @aaa varchar(8000)set @aaa='
declare @s varchar(8000)select @s=@s+'',MAX(CASE mf when ''''''+mf+'''''' THEN  case rk when ''''是'''' 
then case lt when ''''是'''' then  cast(zl as varchar(10))+''''  RL'''' else cast(zl as varchar(10))
+''''  R'''' END else case lt when ''''是'''' then  cast(zl as varchar)+''''  L'''' else 
cast(zl as varchar) END end else '''''''' end) [''+mf+'']''
 from(select distinct cast(mf as varchar(10)) mf  from '+@tablename+') aexec(@s)
'exec @aaa

解决方案 »

  1.   

    不行啊,我在后面用PRINT @S想看@S的内容,但却是空的,@S的内容在后面是要用到的
      

  2.   

    你看这样行不??我不敢在大力面前耍大刀
    declare @s1 varchar(8000)declare @aaa varchar(8000)set @aaa='
    declare @s varchar(8000)select @s=@s+'',MAX(CASE mf when ''''''+mf+'''''' THEN  case rk when ''''是'''' 
    then case lt when ''''是'''' then  cast(zl as varchar(10))+''''  RL'''' else cast(zl as varchar(10))
    +''''  R'''' END else case lt when ''''是'''' then  cast(zl as varchar)+''''  L'''' else 
    cast(zl as varchar) END end else '''''''' end) [''+mf+'']''
     from(select distinct cast(mf as varchar(10)) mf  from '+@tablename+') a
    set @s1=@s
    exec(@s)
    '
    print @s1
    exec @aaa