Sql 存储过程—将两个值传递给存储过程

Sql 存储过程—将两个值传递给存储过程,sql,stored-procedures,Sql,Stored Procedures,这段代码的最后一行和像@In+'%'这样的lname,我不完全确定它是做什么的 任何帮助都将不胜感激。这意味着选择所有名为In前缀的学生。在like子句中,可能有两个占位符 % 。 %表示“任意数量的字符,0或更多”` 表示“一个字符” @In+'%'将@In中的字符串与%连接在一起,这意味着该列以@In中的whatever开头,以whatever结尾,或仅是@In中的字符串 另一个例子: create proc coursenames @course varchar(30), @In

这段代码的最后一行
和像@In+'%'
这样的lname,我不完全确定它是做什么的


任何帮助都将不胜感激。

这意味着选择所有名为In前缀的学生。

在like子句中,可能有两个占位符

  • %
%
表示“任意数量的字符,0或更多”`

表示“一个字符”

@In+'%'
@In
中的字符串与
%
连接在一起,这意味着该列以
@In
中的whatever开头,以whatever结尾,或仅是
@In
中的字符串

另一个例子:

create proc coursenames 
 @course varchar(30), @In varchar(20) 
as 
select fname, lname
from student
where course = @course
and lname like @In+'%'

搜索foo列以任何内容开头并以例如“abcd”或“abxd”结尾的所有行。

它用于筛选记录
,其中lname以您在@in中传递的内容开头,以及之后的任何内容。
请阅读此内容以更好地理解

例如,如果您通过
@In='Ja'
,您的
lname
记录如下

foo like '%ab_d'
使用
lname like@In+'%
选择的结果将是以
'Ja'
开头的lname,如下所示。(即,
'Robert'
被过滤掉,因为它不是以
'Ja'开头的。

lname
------
Jackson
James
Robert

在SQL中,%符号用于通配符搜索。基本上,代码的最后一行是询问任何姓氏以@In参数开头的记录。%符号允许查询中的类似者查找您提供的文本及其后出现的任何文本。如果将%符号放在@In参数之前您将返回姓氏以@In结尾的任何记录;相应地,如果您在查询中放入“%+@In+%”,它将返回@In出现在字符串中任何位置的记录

lname
------
Jackson
James