请帮我修正一下这个模糊查询存储过程。

来源:百度知道 编辑:UC知道 时间:2024/06/17 14:08:12
这个是我编写的存储过程
ALTER PROCEDURE [dbo].[proc_SelectDarksal_chance]
@chc_cust_name varchar(100)=null,
@chc_title varchar(200)=null,
@chc_linkman varchar(50)=null
AS
select * from sal_chance
where chc_cust_name like '%'+(@chc_cust_name)+'%'
and chc_title like '%'+(@chc_title)+'%'
and chc_linkman like '%'+(@chc_linkman)+'%'
and chc_status='0'
exec dbo.proc_SelectDarksal_chance '龙龙','购买','王五'
这样可以查询出行。
现在出现的问题是
exec dbo.proc_SelectDarksal_chance '龙龙'
这样就查询不出行。
因为我是跟随个人的意见随便在三个文本框里输入值然后返回
只要一个文本框里面有值其他框是空的在数据库存在都可以返回。

exec dbo.proc_SelectDarksal_chance '龙龙' 你的存储过程有三个参数传入,即使你想省略'购买','王五' ,你需要‘’‘’表示控制,不然肯定个不正确

select * from sal_chance
where chc_cust_name like '%'+(@chc_cust_name)+'%'
and chc_title like '%'+(@chc_title)+'%'
and chc_linkman like '%'+(@chc_linkman)+'%'
and chc_status='0'

把前两个 and 改成 or

定义参数的时候 初始化的语句=null,而且中间引用参数也不需要加()的也去掉,然后试试看