这个变量怎么表示?

zoulipeng 2004-07-17 12:49:22
set @sZBLZTIME='select @d=GETM from '+ @TABLENAME +' where (STCD = '+@STCD+') and ('+@ITABBNAME+'>'+@ZBLZ+') '




想表达这个意思如:
set @sZBLZTIME='select @d=GETM from 表名where (STCD = '1001') and (字段名>1.5) '





现在报告:

服务器: 消息 8114,级别 16,状态 5,过程 P_GetSingleAppraise,行 238
将数据类型 varchar 转换为 float 时出错。
错误。请问怎么写?
...全文
74 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zheninchangjiang 2004-07-17
  • 打赏
  • 举报
回复
里面有fload数据类型 ,对于字符和数字类型混合相加的,不是把数字类型转为字符类型,而是把字符的转为数字的,因此,你要把数字类型的变量转换成字符数字类型的。
可以用cast(@var as varchar(30)) 或者 convert(varchar(30),@var)
rea1gz 2004-07-17
  • 打赏
  • 举报
回复
declare @TABLENAME varchar(100)
declare @STCD varchar(100)
declare @ZBLZ varchar(100) --注意这里的类型
set ...

declare @d ...
declare @sZBLZTIME nvarchar(1000)

set @sZBLZTIME=N'select @d=GETM from '+ @TABLENAME +' where (STCD = '+@STCD+') and ('+@ITABBNAME+'>'+@ZBLZ+') '
exec sp_executesql @sZBLZTIME,N'@d ... output',@d output
select @d as result



27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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