一个关于拼接字符串的模糊查询,请高手帮忙查错。

lxhvc 2005-03-15 09:37:10
ALTER PROCEDURE dbo.SP_SearchEngine
@keyWord varchar(20), --检索关键词
@foodType int , --检索类型,1为饮食消费类,2为娱乐消费类
@areaID int, --检索地域类别
@bizType int , --详细分类2,根据表中定义
@baseConsume varchar(20) --基本消费价位
AS
declare @sqlstr varchar(8000)
declare @dou varchar(3)
set @dou = [']
set @sqlstr = 'select vc_BizerName ,vc_Addr,vc_Tel,vc_Principal,vc_BaseConsume from TBL_Bizer where'
if @keyWord <> ''
set @sqlstr = @sqlstr + 'vc_BizerName like'+@dou+'%'+ @keyWord +'% or vc_Addr like %'+ @keyWord + '%'
else
set @sqlstr = @sqlstr + 'vc_BizerName like _ or vc_Addr like _'
if @areaID <> -1
set @sqlstr = @sqlstr +' and i_areaID='+@areaID
if @bizType <> -1
set @sqlstr = @sqlstr + ' and i_BizTypeID='+@bizType
if @baseConsume <> ''
set @sqlstr = @sqlstr + ' and vc_BaseConsume =' +@baseConsume
EXEC(@sqlstr)
...全文
142 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxhvc 2005-03-15
  • 打赏
  • 举报
回复
不好意思,这个是我自己搞错了,问题已解决,多谢各位高手指教
lxhvc 2005-03-15
  • 打赏
  • 举报
回复
还是有问题:

运行dbo."SP_Search" ( @keyWord = _, @foodType = -1, @areaID = -1, @bizType = -1, @baseConsume = -1 ).

第 1 行: ']' 附近有语法错误。
字符串 '' 之前有未闭合的引号。
没有行受影响。
(返回 0 行)
@RETURN_VALUE = 0
完成 dbo."SP_Search" 运行。
paoluo 2005-03-15
  • 打赏
  • 举报
回复
set @sqlstr = @sqlstr + ' and vc_BaseConsume =' +@baseConsume

应该改为

set @sqlstr = @sqlstr + ' and vc_BaseConsume =''' +@baseConsume +''''
子陌红尘 2005-03-15
  • 打赏
  • 举报
回复
ALTER PROCEDURE SP_Search
@keyWord varchar(20), --检索关键词
@foodType int , --检索类型,1为饮食消费类,2为娱乐消费类
@areaID int, --检索地域类别
@bizType int , --详细分类2,根据表中定义
@baseConsume varchar(20) --基本消费价位
AS
BEGIN
declare @sqlstr varchar(8000)
declare @dou varchar(3)
set @dou = '['']'

set @sqlstr = 'select vc_BizerName ,vc_Addr,vc_Tel,vc_Principal,vc_BaseConsume from TBL_Bizer where '
if @keyWord <> ''
set @sqlstr = @sqlstr + 'vc_BizerName like '''+@dou+'%'+ @keyWord +'%'' or vc_Addr like ''%'+ @keyWord + '%'''
else
set @sqlstr = @sqlstr + 'vc_BizerName like _ or vc_Addr like _'
if @areaID <> -1
set @sqlstr = @sqlstr +' and i_areaID='+rtrim(@areaID)
if @bizType <> -1
set @sqlstr = @sqlstr + ' and i_BizTypeID='+rtrim(@bizType)
if @baseConsume <> ''
set @sqlstr = @sqlstr + ' and vc_BaseConsume =''' +@baseConsume + ''''

EXEC(@sqlstr)
END
paoluo 2005-03-15
  • 打赏
  • 举报
回复
发现一个错误:

set @sqlstr = 'select vc_BizerName ,vc_Addr,vc_Tel,vc_Principal,vc_BaseConsume from TBL_Bizer where'
后面应该留空格
set @sqlstr = 'select vc_BizerName ,vc_Addr,vc_Tel,vc_Principal,vc_BaseConsume from TBL_Bizer where '

34,590

社区成员

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

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