sql存储过程中使用模糊查询

useMemoDatabaseifexists(select*fromsysobjectswherename='SelectAllProcess')dropProcSel... use MemoDatabase
if exists(select * from sysobjects where name = 'SelectAllProcess' )
drop Proc SelectAllProcess
go
create proc SelectAllProcess
(
@xingming varchar(15),
@chenghu varchar(15),
@haoma varchar(15),
@fenzu varchar(10)
)
as
begin
select xingming as 姓名,xingbie as 性别,chenghu as 称呼,haoma as 号码,fenzu as 分组,shijian as 时间 from MemoTable where xingming like '%'+@xingming+'%' or chenghu like '%'+@chenghu+'%' or haoma like '%'+@haoma+'%' or fenzu like '%'+@fenzu+'%'
end

exec SelectAllProcess @xingming='盼',@chenghu= '空格',@haoma='13720686947',@fenzu='空格'

谁能帮帮我啊! 为什么执行的时候一定要给为空的参数一个空格,不给就查询出表里的全部内容了!
麻烦帮帮忙吧!
都不行啊! 各位前辈啊! 帮帮忙吧!
展开
 我来答
feixianxxx
推荐于2017-11-28 · TA获得超过2202个赞
知道大有可为答主
回答量:1273
采纳率:100%
帮助的人:1750万
展开全部
方法1:你可以给参数一定 默认值
create proc SelectAllProcess
@xingming varchar(15)='',
@chenghu varchar(15)='',
@haoma varchar(15)='',
@fenzu varchar(10)=''
。。。
exec SelectAllProcess
@xingming=default,
@chenghu= default,
@haoma=default,
@fenzu=default

或者用
if exists(select * from sysobjects where name = 'SelectAllProcess' )
drop Proc SelectAllProcess
go
create proc SelectAllProcess
@xingming varchar(15),
@chenghu varchar(15),
@haoma varchar(15),
@fenzu varchar(10)
as
begin
select xingming as 姓名,xingbie as 性别,chenghu as 称呼,haoma as 号码,fenzu as 分组,shijian as 时间
from MemoTable
where xingming like '%'+COALESCE(@xingming,'')+'%' or
chenghu like '%'+COALESCE(@chenghu,'')+'%' or
haoma like '%'+COALESCE(@haoma,'')+'%' or
fenzu like '%'+COALESCE(@fenzu,'')+'%'
end

exec SelectAllProcess @xingming='盼',@chenghu=null,@haoma='13720686947',@fenzu=null
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
简波佘忆文
2019-04-20 · TA获得超过3999个赞
知道大有可为答主
回答量:3142
采纳率:31%
帮助的人:435万
展开全部
ALTER
PROCEDURE
[dbo].[pro_Search_keys]
@keys
nvarchar(max)
AS
BEGIN
SELECT*
FROM
text_Text
where
Title
like
‘%’+@keys+‘%’
END
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
whyxup
2010-04-28 · 超过11用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:37.7万
展开全部
ISNULL(@fenzu,'') 每一个参数加上这个函数 就没有问题了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lzp4881
2010-04-28 · TA获得超过2394个赞
知道大有可为答主
回答量:2825
采纳率:0%
帮助的人:2988万
展开全部
你的存储过程写的有问题。
你应该判断一下如果参数为空就不参加查询。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式