请高手指点 20CSDN]

发布时间:2016-12-9 0:21:47 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"请高手指点 20CSDN]",主要涉及到请高手指点 20CSDN]方面的内容,对于请高手指点 20CSDN]感兴趣的同学可以参考一下。

DECLARE @I int DECLARE @value int DECLARE @tmpstr varchar(400) DECLARE @tmpstr1 varchar(150) DECLARE @tmpstr2 varchar(150) set @I=0 set @value=(select max(loginstanc) from acrd) set @tmpstr=('select cardcode') while(@i<[email protected]) begin set @[email protected]+1 set @tmpstr1=(',(select top 1 isnull(t0.cardname,0) from acrd t0 where [email protected]+'   and t0.cardcode=acrd.cardcode) as [email protected]) set @[email protected][email protected] end select @tmpstr set @tmpstr2=' group by cardcode' set @[email protected][email protected] exec(@tmpstr) 报以下错误 将 varchar 值 ',(select top 1 isnull(t0.cardname,0) from acrd t0 where loginstanc=' 转换为数据类型为 int 的列时发生语法错误。 请指点为什么错了

set @tmpstr1=(',(select top 1 isnull(t0.cardname,0) from acrd t0 where [email protected]+'   and t0.cardcode=acrd.cardcode) as [email protected]) 出错原因就是tmpstr1是VARCHAR类型而,@i是INT类型.两者不能直接写在一起. 修改: convert(varchar(100),@i) set @tmpstr1=(',(select top 1 isnull(t0.cardname,0) from acrd t0 where loginstanc='+convert(varchar(100),@i)+'   and t0.cardcode=acrd.cardcode) as a_'+convert(varchar(100),@i))

谢谢,改后又报以下错误,是怎么会事? 服务器: 消息 170,级别 15,状态 1,行 2 第 2 行: '1' 附近有语法错误。 服务器: 消息 156,级别 15,状态 1,行 3 在关键字 'as' 附近有语法错误。 服务器: 消息 156,级别 15,状态 1,行 4 在关键字 'as' 附近有语法错误。 服务器: 消息 170,级别 15,状态 1,行 4 第 4 行: 'loginsta' 附近有语法错误。

如果对sql不熟悉,建议用增量方式,从简单的语句逐渐增加,保证每次错误为零在进入下一步,并多用print显示中间结果。 论坛上帮你解决技术难题比较正常,帮你debug就不那么方便了

谢谢指教

上一篇:sql server 2005不能附加数据库问题 100CSDN]
下一篇:请问有没有关于 SQL2000或2005 数据挖掘方面的书. 20CSDN]

相关文章

相关评论