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