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),'
展开
 我来答
天极宇智波
2015-01-14 · TA获得超过426个赞
知道小有建树答主
回答量:358
采纳率:100%
帮助的人:177万
展开全部
这是由于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
希望对你有所帮助!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式