3
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+'%'、私はそれが何をするのか完全にはわかりませんか?

どんな助けでも大歓迎です。

4

4 に答える 4

0

like 節では、2 つのプレースホルダーが可能です。

  • %
  • _

%「0文字以上の任意の文字数」を意味します

_は「一文字」という意味です。

は文字列 inと を@In+'%'連結します。これは、列が in の文字列で始まり、文字列 in の文字列で終わることを意味します。@In%@In@In

もう一つの例:

foo like '%ab_d'

foo 列が何かで始まり、"abcd" や "abxd" などで終わるすべての行を検索します。

于 2013-03-06T12:22:51.780 に答える
0

SQL では、ワイルド カード検索に % 記号が使用されます。基本的に、コードの最後の行は、@In パラメータが何であれ、姓が始まるすべてのレコードを要求しています。% 記号を使用すると、クエリ内の LIKE で、指定したテキストとその後にあるテキストを検索できます。@In パラメータの前に % 記号を付けると、姓が @In で終わるすべてのレコードが返されます。同様に、クエリに '%' + @In + '%' を入力すると、@In が文字列内の任意の場所にあるレコードが返されます。

于 2013-03-06T12:34:04.680 に答える
0

これは、名前が In プレフィックスを持つすべての学生を選択することを意味します

于 2013-03-06T12:18:36.457 に答える
0

レコードをフィルタリングするために使用されます理解を深めるために、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+'%'に始まる lnames になり'Ja'ます。(つまり;で始まっていないため、'Robert' 除外されます。'Ja'

lname
------
Jackson
James
于 2013-03-06T12:28:12.387 に答える