SQL动态写法,为什么语句里面的列会出现引用无效?请指教,谢谢
declare@t6varchar(500)set@t6='select'select@t6=@t6+'['+category+']=sum(casewhencatego...
declare @t6 varchar(500)
set @t6='select '
select @t6=@t6+'['+category+']=sum(case when category='''+category+''' then 1 end),' 展开
set @t6='select '
select @t6=@t6+'['+category+']=sum(case when category='''+category+''' then 1 end),' 展开
1个回答
展开全部
这是由于sql语句自身的编码规则所决定的,你这样的写法不符合sql语句的书写规则,所以会提示错误信息。
如困蚂果一定要这些操作,可直接建立一次存储过程具体如下:
create proc [dbo].[xixi]
as
beging
declare @t6 varchar(500)
set @t6='select '
declare @sqlstr varchar(4000)
set @sqlstr =('
select '+@t6+'='+@t6+'+'['+category+']=sum(case when category='''+category+''' then 1 end)'
注:这里的语句你自己看着修改一下 @t6这次卖尺扮参数一定要使用 '+@t6+' ;sql语句中字符串的拼接需要使用 str(字中灶符串)这样的形式去拼加
')
exec @sqlstr
end
希望对你有所帮助!
如困蚂果一定要这些操作,可直接建立一次存储过程具体如下:
create proc [dbo].[xixi]
as
beging
declare @t6 varchar(500)
set @t6='select '
declare @sqlstr varchar(4000)
set @sqlstr =('
select '+@t6+'='+@t6+'+'['+category+']=sum(case when category='''+category+''' then 1 end)'
注:这里的语句你自己看着修改一下 @t6这次卖尺扮参数一定要使用 '+@t6+' ;sql语句中字符串的拼接需要使用 str(字中灶符串)这样的形式去拼加
')
exec @sqlstr
end
希望对你有所帮助!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询