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 :(得分:0)
这意味着选择名称中包含In前缀
的所有学生答案 1 :(得分:0)
在类似的条款中,有两个占位符可能。
%
_
%
表示“任意数量的字符,0或更多”
_
表示“一个字符”。
@In+'%'
连接@In
和%
中的字符串,这意味着该列以@In
中的任何内容开头,以任何字符串结尾或以字符串结尾在@In
。
另一个例子:
foo like '%ab_d'
搜索foo列以任何内容开头的所有行,并以例如“abcd”或“abxd”结束
答案 2 :(得分:0)
它用于过滤记录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'
开头的名字,如下所示。 (即; 'Robert'
过滤掉,因为它不是以'Ja'
开头
lname
------
Jackson
James
答案 3 :(得分:0)
在SQL中,%符号用于通配符搜索。基本上,代码的最后一行是要求任何以@In参数开头的姓氏开头的记录。 %符号允许查询中的LIKE查找您提供的文本以及之后出现的任何文本。如果你在@In参数之前放置%符号,你将得到任何记录,其中姓氏以@In为结尾;相应地,如果你在查询中加上'%'+ @ In +'%',它将返回记录,其中@In出现在字符串中的任何地方