create proc coursenames
@course varchar(30), @In varchar(20)
as
select fname, lname
from student
where course = @course
and lname like @In+'%'
此代码的最后一行and lname like @In+'%'
,我不完全确定它的作用?存储过程 - 将两个值传递到存储过程
任何帮助将不胜感激。
create proc coursenames
@course varchar(30), @In varchar(20)
as
select fname, lname
from student
where course = @course
and lname like @In+'%'
此代码的最后一行and lname like @In+'%'
,我不完全确定它的作用?存储过程 - 将两个值传递到存储过程
任何帮助将不胜感激。
以类似的条款有两种可能的占位符。
%
_
的%
装置“的任何数目的字符,0或more`
的_
装置 “一个字符”。
的@In+'%'
地连接了字符串@In
和%
,w这意味着该列以@In
中的任何内容开头,并以任何结尾或只是@In
中的字符串结束。
又如:
foo like '%ab_d'
搜索在富柱与任何东西开始,以例如“ABCD”或者“abxd”结尾的所有行
这意味着选择所有学生的名字有在前缀
它是用来筛选记录where lname is starting with what you pass in @In and anything after that.
请仔细阅读这msdn link更好地理解
例如,如果你通过@In = 'Ja'
和你lname
记录如下
lname
------
Jackson
James
Robert
您选择的结果包含lname like @In+'%'
将以'Ja'
开头的lname如下所示。 (即; 'Robert'
过滤掉因为它不开始'Ja'
lname
------
Jackson
James
在SQL%符号用于通配符搜索,基本上,你的代码的最后一行是要求具有的任何记录姓氏以@In参数开头,%符号允许查询中的LIKE查找你提供的文本和任何后面的文本如果你把%符号放在@In参数之前,你会返回任何记录的姓氏以任何@In结尾;相应地,如果您在查询中放入'%'+ @In +'%',它将返回记录,其中@In发生在字符串内的任何位置