[英]Stored Procedures - To pass two values to a stored procedure
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+'%'
,我不完全確定它的作用是什么?
任何幫助將非常感激。
這意味着選擇所有名字都有In前綴的學生
在類似的條款中,有兩個占位符可能。
%
_
%
表示“任意數量的字符,0或更多”
_
表示“一個字符”。
所述@In+'%'
串接在串@In
和%
,這意味着該列與任何在開始@In
是和與任何結束或只是在該字符串@In
。
另一個例子:
foo like '%ab_d'
搜索foo列以任何內容開頭的所有行,並以例如“abcd”或“abxd”結束
它用於過濾where lname is starting with what you pass in @In and anything after that.
記錄where lname is starting with what you pass in @In and anything after that.
請閱讀此msdn鏈接以便更好地理解
例如,如果您傳遞@In = 'Ja'
並且您的lname
記錄如下所示
lname
------
Jackson
James
Robert
你lname like @In+'%'
選擇結果將是以'Ja'
開頭的lnames,如下所示。 (即'Robert'
過濾掉,因為它不是以'Ja'
開頭'Ja'
lname
------
Jackson
James
在SQL中,%符號用於通配符搜索。 基本上,代碼的最后一行是要求任何以@In參數開頭的姓氏開頭的記錄。 %符號允許查詢中的LIKE查找您提供的文本以及之后出現的任何文本。 如果你在@In參數之前放置%符號,你將得到任何記錄,其中姓氏以@In為結尾; 相應地,如果在查詢中放入'%'+ @In +'%',它將返回記錄,其中@In出現在字符串中的任何位置
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.