如何在存储过程中定义SQL语句时进行模糊查询

wxmayifei 2010-09-13 03:49:15
在存储过程中
我是这样写的
declare @sql nvarchar(300)
@maxbillcode varchar(15),
set @sql='select @a=max(code) from ' + @tablename + 'where billcode like @name%'
exec sp_executesql @sql,N'@a varchar(15) output',@maxbillcode output
我要根据@name来进行模糊查询,获取最大的code
...全文
97 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pangjinyu 2010-09-13
  • 打赏
  • 举报
回复

set @sql='select @a=max(code) from ' + @tablename + 'where billcode like '''+@name+'%'''
wxmayifei 2010-09-13
  • 打赏
  • 举报
回复
谢谢阿
wxmayifei 2010-09-13
  • 打赏
  • 举报
回复
好了 ,。。。
where 前没加空格。。。
wxmayifei 2010-09-13
  • 打赏
  • 举报
回复
@name不是传进来的变量,是通过传进来的变量查出来的
hovy_yang 2010-09-13
  • 打赏
  • 举报
回复
如果@name是传进来的参数,直接like %@name%是不行的、必须去掉@name的前后空格ltrim(rtrim(@name))
wxmayifei 2010-09-13
  • 打赏
  • 举报
回复
不行啊,还是报like附近有语法错误,
我只要右模糊查询
budong0000 2010-09-13
  • 打赏
  • 举报
回复

set @sql='select @a=max(code) from ' + @tablename + 'where billcode like ''%'+ @name+'%'''

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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