SQL多个条件模糊查询问题。。。

我用一个textbox输入信息查询人员信息,textbox内容可以是客户名称,电话,电子邮件,QQ/MSN,客户姓名,客户公司名,地址,备注等内容。可能是文字也可能是数字... 我用一个textbox 输入信息查询人员信息,textbox内容可以是客户名称,电话,电子邮件,QQ/MSN,客户姓名,客户公司名,地址,备注等内容。可能是文字也可能是数字。
然后我的存储过程是这样的:

@chaxun varchar(30)=‘’
SELECT 。。。

where rymc like '%'+@chaxun +'%'

or [renyuandetail(人员详细)].xm like '%'+@chaxun +'%'

or xb like '%'+@chaxun +'%'

or [renyuandetail(人员详细)].zw like '%'+@chaxun +'%'

or lxdh like '%' +cast(ltrim(rtrim(@chaxun)) as int) +'%' /*lxdh是int型的,这样转换有错吗?*/

or sj like '%'+@chaxun +'%'

or email like '%'+@chaxun +'%'

or QQMSN like '%' +cast(ltrim(rtrim(@chaxun)) as int) +'%'

or gsm like '%'+@chaxun +'%'

or yb like '%' +cast(ltrim(rtrim(@chaxun)) as int) +'%'

or txdz like '%'+@chaxun +'%'

or cz like '%' +cast(ltrim(rtrim(@chaxun)) as int) +'%'

or bz like '%'+@chaxun +'%'

当我输入@chaxun=“1234455”时,显示“在将 varchar 值 '%' 转换成数据类型 int 时失败。”
请问该怎么改正?谢谢!
展开
 我来答
你好师姐
2012-05-02 · TA获得超过123个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:139万
展开全部
or lxdh like '%' +cast(ltrim(rtrim(@chaxun)) as int) +'%' /*lxdh是int型的,这样转换有错吗?*/
这个地方错了

'%'是 varchar类型,
cast(ltrim(rtrim(@chaxun)) as int) 是int 这两个是不能相加的
更多追问追答
追问
那请问我应该怎么改呢
追答
lxdh是什么类型?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刘伟伟实名
2012-05-02 · 超过17用户采纳过TA的回答
知道答主
回答量:135
采纳率:100%
帮助的人:41.3万
展开全部
问题出在你定义的@chaxun varchar(30)虽然是可变长字符串 若你输入30个1不就产生buge了吗所以varchar()的长度应为10以内只要小于int所表示的最大值或把int改为bigint
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式