exec('select *,'+@s+' from v a ' + @w + ' group by stcode,year ')
解决方案 »
- 怎样安装sql2005
- 【求助】SQLSERVER2008存储过程输出到控制台的语法
- 请教:事务中的SQL语句不需要declare和exec吗?
- syscomments中ctext字段和text字段的区别
- 两个表的连接问题
- 奇怪的real数据类型,对real类型字段插入小数,在查询分析器网格中看到的居然不是我插入的值
- 求一求和的sql语句
- SQL 语句 如何执行 2个日期之间的判断~急,大分
- 请教:如何从Excel导数据至SQL Server中去!
- 急!在线等。数据库外键问题
- %%%%%%一个关于范式的调查%%%%%%
- EXEC master..xp_cmdshell 'bcp master.dbo.sysobjects out c:\temp1.xls -c -S"oa" -U"sa" -P""' 出错如何处理?
但是不要超过长度限制就可以select @s=@s+',['+convert(varchar(10),itemname)+']=max(case item when '''+convert(varchar(10),item)+''' then k else 0 end)' from (select distinct item,itemname from v' + @w + ') a'
--处理
declare @s varchar(8000
set @s=''
select @s=@s+',['+convert(varchar(10),itemname)+']=max(case item when '''+convert(varchar(10),item)+''' then k else 0 end)' from (select distinct item,itemname from v) aexec('select *,'+@s+' from v a where '+@w+' group by stcode,year)
GO
@w varchar(8000)
as
--处理
declare @s varchar(8000),@qry nvarchar(4000)
select @w=case isnull(@w,'') when '' then ''
else case left(@w,6) when 'where ' then @w
else 'where '+@w end end
,@s=''
,@qry='
select @s=@s+'',[''+convert(varchar(10),itemname)
+'']=max(case item when ''''''
+convert(varchar(10),item)+'''''' then k else 0 end)''
from (select distinct item,itemname from v '+@w+' ) a'
exec sp_executesql @qry,N'@s varchar(8000) out',@s out
exec('select *'+@s+' from v a '+@w+' group by stcode,year')
GO