模糊查询 存储过程

USE[sshd]GO/******Object:StoredProcedure[dbo].[select_dayword_tody]ScriptDate:05/17/2... USE [sshd]
GO
/****** Object: StoredProcedure [dbo].[select_dayword_tody] Script Date: 05/17/2014 14:44:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[select_dayword_tody]
@time nchar(30),
@jsz nchar
as
select a.id,b.num,b.name ,a.title ,a.body ,a.time ,a.sffj ,a.jsz ,a.fjlj ,b.icourl from daywork a left join teacher b on a.fbrid =b.num where (time =@time and jsz like '%['+@jsz +']%')

主要问题是这个模糊查询语句似乎不太发挥作用。表中jsz类型为nchar(100)其存储内容例“动漫1101_工业电气1101”,现在此存储过程的目标就是想把所有jsz中包含“动漫1101”的都检索出来。我上头这样子写检索出来的不太对
exec select_dayword_tody @time='2014年5月17日',@jsz='动漫1101'
结果是只要包含“动漫”两个字的都检索出来了,请大神赐教
展开
 我来答
胡水安
推荐于2016-11-23 · TA获得超过178个赞
知道答主
回答量:144
采纳率:75%
帮助的人:66.2万
展开全部
取消前面的那个% 就好了
这个看你怎么分析了, %张% 代表 查询所有包括张的 字段
张% 代表查询 以张开头的所有字段
%张 代表所有以张结尾的字段
你的语句我建议你写成
select emp_name from emps where( emp_name like @张% or emp_name %@张 )
这样就能取消很多了
另外如果你的是存储过程需要看看执行的结果是不是你要的.
追问
似乎不太行,若取消前面那个百分号,对应于“工业电气1101”就无法检索出。如果直接用sql语句查询。用‘2014年5月14日’取代@time,用‘动漫1101’取代@jsz检索出的结果是完全正确的,制成存储过程就不行。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式