SQL拼接错误

验证码识别 2011-07-10 04:32:12

DECLARE @maxlevel2 int
set @maxlevel2 = 9
set @sql = 'and '+ @maxlevel2 + ' >= (select top 1 gamelevel from character )'
print @sql

-----------输出-----------
将 varchar 值 'and ' 转换为数据类型为 int 的列时发生语法错误。

帮改改
...全文
130 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yubofighting 2011-07-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 acherat 的回复:]
注意在拼接SQL字符串的时候数值型的要转换为字符型的,可以用ltrim 、 rtrim 隐式转换,也可以用cast 、 convert 转换为字符型!
[/Quote]

+
  • 打赏
  • 举报
回复
DECLARE @maxlevel2 int
set @maxlevel2 = 9
set @sql = 'and '+ cast(@maxlevel2 as varchar(10))+ ' >= (select top 1 gamelevel from character )'
print @sql


叶子 2011-07-10
  • 打赏
  • 举报
回复
要么:

DECLARE @maxlevel2 varchar(20)
set @maxlevel2 = '9'
set @sql = 'and '+ @maxlevel2 + ' >= (select top 1 gamelevel from character )'
print @sql


要么:

DECLARE @maxlevel2 int
set @maxlevel2 = 9
set @sql = 'and '+ ltrim(@maxlevel2) + ' >= (select top 1 gamelevel from character )'
print @sql
AcHerat 元老 2011-07-10
  • 打赏
  • 举报
回复
注意在拼接SQL字符串的时候数值型的要转换为字符型的,可以用ltrim 、 rtrim 隐式转换,也可以用cast 、 convert 转换为字符型!
AcHerat 元老 2011-07-10
  • 打赏
  • 举报
回复

DECLARE @maxlevel2 int
set @maxlevel2 = 9
set @sql = 'and '+ ltrim(@maxlevel2) + ' >= (select top 1 gamelevel from character )'
print @sql

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧