簡體   English   中英

存儲過程 - 將兩個值傳遞給存儲過程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM